[閒聊] multiprocessing的thread數量

作者: shemale (我…我不是特意來肛你的)   2016-05-03 21:54:47
有一陣子我被這問題困擾,其實也不是什麼大問題,
比如說,100個data分給10個threads處理,平均一個thread分到10個。
但是,這data處理時間並不一致,時間有長有短,
可能有幾個特別長,所以,拿到長的那個thread,可能後面還有一些data,
全等在那裡,其他的thread都做完了,卻不能幫忙。
目前我是用multiprocessing.Queue,100個data全丟到queue,
每個thread處理完的自己去queue拿下一個,這樣比較沒有浪費到時間。
不知道大家有沒有其他更好的,或是現成就有我卻沒去用的?
因為我不確定multiprocessing.Pool是不是我要的~~
作者: SocketAM2 (AM2)   2016-05-03 22:07:00
pool
作者: uranusjr (←這人是超級笨蛋)   2016-05-03 22:43:00
Pool 就是你要的沒錯 (不過用 queue 也不是不行)
作者: tiefblau (tiefblau)   2016-05-03 22:46:00
pool 不過queue應該也差不多意思桌機開一百的話反而反效果 考慮一下機器CPU再去做
作者: shemale (我…我不是特意來肛你的)   2016-05-03 22:58:00
data有100個,但實際上我可以設定在跑的job只有5個10個吧
作者: tiefblau (tiefblau)   2016-05-04 00:15:00
那就是我的意思~ 所以你開一百條thread根本沒用 反而還花成本去開thread~
作者: uranusjr (←這人是超級笨蛋)   2016-05-04 02:44:00
@tiefblau 你根本沒看懂, 原 po 並沒有跑 100 條執行緒文章明明寫得很清楚 100 份 data 分給 10 個執行緒

Links booklink

Contact Us: admin [ a t ] ucptt.com