作者SongIceFire (Hi 又沒事做啦!?)
看板Soft_Job
標題[請益] 有用過多執行緒做工具嗎
時間Mon May 23 05:28:48 2022
各位好
是來找想法的
主要是想透過多執行緒做些什麼
並拿來面試
同時也希望是寫些我自己日常會用的
儘管有看書但從業到現在都沒實際用過
方便的話請簡述該功能細節
或提供 github gitlab
麻煩了
謝謝
不好意思沒辦法一一回應
我所求的是
你個人因為某需求而寫的
讓生活變的更簡單的工具
能面試最好但為次要
github也是次要
並且不是作業
理想的情境是
我正好需要
且看內容認為寫的出來
不懂就去 stackoverflow 問
本身用 java 也會去 java 版問
運用書中所學寫出來
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.25.89 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1653254930.A.C9F.html
噓 hegemon: 伸手牌?你知道有一種東西叫Google ,它還蠻好用的嗎? 05/23 06:03
→ SongIceFire: ?? 求關鍵字或網址 謝謝 05/23 06:20
您是主要開發者之一嗎
會找時間看簡介
先謝謝了
→ DarkIllusion: 要拿去面試講喔 這樣算是請大家幫你寫作業的意思嗎? 05/23 06:56
不是喔
作業我自己會寫
推 b0920075: 提供個想法還好吧,又不是幫他做 05/23 07:02
→ b0920075: 喔喔如果是拿 github 上照抄的話當我沒說 05/23 07:02
程式碼我自己會實作
能提供 github 當然好但只是次要
github 用 multi-thread 去查只有一堆 tutorial
※ 編輯: SongIceFire (223.137.25.89 臺灣), 05/23/2022 07:19:26
→ tofuflower: OS 恐龍本,有一章多執行序,要範例要解說都有 05/23 08:24
→ tofuflower: 也有作業 05/23 08:24
推 k798976869: 大學上os課本恐龍書 作業就有寫了 05/23 08:26
→ shooter555: 應該說日常會用的 自己把他轉成多執行緒調效能 05/23 09:02
→ antpro: Refer to "FlashGet", a kind of download manager. 05/23 09:02
→ antpro: I know it's very old software, though. 05/23 09:02
→ shooter555: 從業之後沒用過 除非你寫的都很底層 05/23 09:03
→ shooter555: 先找找看哪些地方並行處理會加快的 就把它丟thread 05/23 09:07
推 calqlus: 就等io反應或是讓GUI不死當的同步機制 05/23 09:35
推 sazabijiang: 多執行緒程式要執行一段時間,而且你會想著程式執行 05/23 09:36
→ sazabijiang: 這樣才有多執行緒的意義。不然你用遞迴寫一個檔案 05/23 09:37
→ sazabijiang: 空間分析器,能計算指定目錄以及其子目錄下的檔案 05/23 09:37
→ sazabijiang: 大小總和,執行的時候有一個進度條顯示目前處理的 05/23 09:38
→ sazabijiang: 目錄/檔案數目。這個作業應該不難做。 05/23 09:38
進度條沒有想過
謝謝建議!
推 ouskit: 隨便一個爬蟲 05/23 09:50
爬蟲要懂網路
目前還不會
推 vi000246: 簡單 去codejob板當免錢勞工 05/23 10:28
→ kentyeh: 寄廣告信,轉檔,爬蟲,抓股價,都可以 05/23 10:31
前年寫過抓股價的工具
寫一年多
但最後多執行緒只占了一小部分
自娛可以不宜拿來面試
推 hidog: 你從業多久了-.-? 都跑硬體底層嗎 05/23 10:36
→ hidog: github上面隨便找都有 05/23 10:37
推 alex70266: 你是想練習自己做的東西用現成平台上的multi thread li 05/23 10:47
→ alex70266: b 還是寫出multi thread的實作? 05/23 10:47
我用 java
希望是 completablefuture 或 guava 等 lib
寫點東西
邊寫邊了解lib
推 Lhmstu: 不如看看作業系統kernel,最神的open source 05/23 11:09
→ cfc0719: 從業多久了?平常都做什麼?完全沒碰過multi-threaded也 05/23 11:13
→ cfc0719: 挺神奇 05/23 11:13
推 rodion: 一個最常用的範例就是GUI工具阿 沒有多執行緒 你就會看見 05/23 11:28
→ rodion: 做一個耗時GUI操作 整個應用程式就不動了 (所以需要多執行 05/23 11:29
→ rodion: 緒) 05/23 11:29
推 yesiah: 要用來面試的話可能需要提供一點業務內容比較好 不然像樓 05/23 11:52
→ yesiah: 上大大提GUI結果你做底層的話也是白搭 05/23 11:52
推 OriginStar: 就做個圖片批次壓縮轉檔工具,批次是例如有20個檔案 05/23 11:53
→ OriginStar: 然後交給5個執行序(可設定)去執行,這種工具網路上 05/23 11:54
→ OriginStar: open source 應該也不少 05/23 11:54
推 yamakazi: 你有多核心就可以用多執行緒啊,比如你做矩陣乘法就可以 05/23 12:08
→ yamakazi: 用多執行緒 05/23 12:08
→ yamakazi: 也不用到很底層,我之前在車機導航做QtUI就用到多執行緒 05/23 12:09
→ yamakazi: 日常工作的話假如你有很多文件要parsing再存檔,沒有多 05/23 12:11
→ yamakazi: 執行緒觀念的人可能就parsing一個存檔一個。有多執行緒 05/23 12:11
→ yamakazi: 概念和多核心可以用的話,我可能就開六個執行緒同時pars 05/23 12:11
→ yamakazi: ing不同文件 05/23 12:11
→ yamakazi: 再來就是make -j7 那個-j就是設定你要用幾個核來編譯 05/23 12:12
→ yamakazi: Android的話我記得遊戲就有分logic thread和 render thr 05/23 12:14
→ yamakazi: ead,這也不用很底層吧,寫app的人應該都會碰到 05/23 12:14
→ yamakazi: 假設你做3*3的矩陣乘法,是不是就可以開三個執行緒去各 05/23 12:16
→ yamakazi: 自乘完各自填值進去 05/23 12:16
→ yamakazi: 隨便舉就一堆啦,但真的難的是如何同步,鎖,條件變數, 05/23 12:17
→ yamakazi: 原子操作等等 05/23 12:17
→ yamakazi: 算算我隨便舉就四五個例子 05/23 12:18
文件 parsing 沒有想過
謝謝建議!
推 alex70266: 通常練習這個要有情境啦.. 05/23 12:26
推 BigCockman: 處理檔案 圖片這種 05/23 12:33
→ umum29: 關鍵字multithread + use case 05/23 12:33
→ umum29: 原子性和幾個flag要搞清楚就很厲害了 05/23 12:34
謝謝
推 neo5277: 影片剪輯 05/23 12:41
推 godsparticle: 隨便去github抄一抄 05/23 13:22
沒有要抄
→ pttyc: 如果是Python的話 可以查GIL 應該是個不錯的知識 05/23 13:27
→ Inglenook: 有試著用多執行緒去爆破密碼學的東東啦,雖然成果不彰 05/23 13:59
→ Inglenook: 就是了 05/23 13:59
推 isaacting: ptt就是最好的例子阿~~~你要如何一次讓50000人上線 05/23 14:36
→ isaacting: 你不用多執行緒做得出來...這個機率很低 05/23 14:37
→ OrzOGC: GIL聽說就要有解了 05/23 14:47
→ acgotaku: 你先了解高併發IO模型與原理就很受用 05/23 15:11
→ ssccg: 榨多核心CPU效能的多執行緒,和高併發、非同步IO其實重點不 05/23 15:29
→ ssccg: 太一樣,就一個多執行緒的關鍵字實在太籠統 05/23 15:33
→ jerohands: 搜尋 boost, asio, proactor 等關鍵字試試 05/23 16:27
謝謝
→ leolarrel: 最常利用到多緒的功能就是進度條功能 05/23 17:53
謝謝
推 Apache: 人好好 05/23 18:52
噓 killua801227: 大家人好好 05/23 19:31
→ feeya: 你寫個桌面應用程式就需要多執行緒了 否則UI會卡住 05/23 19:45
推 Sunal: GIL 有寫?那不就整個CPython要翻掉 05/23 20:13
→ Sunal: *有解 05/23 20:13
噓 pttano: 路過噓 05/23 21:20
→ DrTech: 從業沒用過… 這很可怕吧,難道沒做過任何IO處理,或沒寫 05/23 21:30
→ DrTech: 過多人同時使用的程式 05/23 21:30
※ 編輯: SongIceFire (223.137.25.89 臺灣), 05/24/2022 06:09:28
噓 snac: 大家人真的好好,這種文還會回,感覺就是什麼都不懂沒做功課 05/24 09:07
→ hegemon: 如果是用framework 的話,去翻翻底層的source code應該都 05/24 09:43
→ hegemon: 有實作 05/24 09:43
推 ntpuisbest: 要個關鍵字還好吧,又不是每個人資訊蒐集能力都很強 05/24 10:04
→ yesyesyesyes: 大家人太好 根本伸手牌 05/24 11:53
推 calqlus: 還是建議自己寫個socket program會比較好懂 05/24 12:56
→ shomingchang: 以前桌面視窗程式 GUI 沒 thread 不會動吧 05/24 16:47
→ DrTech: 沒那麼複雜吧,隨便讀個檔案,搜尋裡面出現過關鍵字,UI不 05/24 22:59
→ DrTech: 停頓卡住,這種最基本的功能就能練了。 05/24 22:59
→ sazabijiang: 現在CPU速度太快,但IO永遠是瓶頸 05/24 23:05
→ sazabijiang: 單純跑運算除非是暴力攻擊法,不然一般一下子就跑完 05/24 23:06
→ SongIceFire: 我知道該怎麼做了 謝謝各位意見 05/25 05:22
噓 gmoz: 先練好中文表達 05/25 10:54
推 jerry030897: 中文XDDDDDDDDDDDD 05/25 11:22
→ SongIceFire: ........... 05/25 12:04
→ SongIceFire: 發文時沒有考慮到你的中文能力 歹勢 05/25 12:08
→ albert8304: 問這樣的問題就是沒自己想過,直接看別人都做什麼樣 05/25 13:59
→ albert8304: 的功能,你用自己的方式實作,你馬上就知道沒有多執 05/25 14:00
→ albert8304: 行緒的程式會差在哪了 05/25 14:01
→ OrzOGC: GUI會卡住等上一個指令完成然後就炸掉了XD 05/25 14:23
噓 BigHeadDoggy: 可憐 05/27 01:08
推 opencat: 這...隨便一個語言 打上關鍵字 就有一堆了吧... 05/27 16:49
噓 caty1010: 問使用情境就算了,還想伸手copy 真幸福 05/28 11:37