看板 Python 關於我們 聯絡資訊
有一陣子我被這問題困擾,其實也不是什麼大問題, 比如說,100個data分給10個threads處理,平均一個thread分到10個。 但是,這data處理時間並不一致,時間有長有短, 可能有幾個特別長,所以,拿到長的那個thread,可能後面還有一些data, 全等在那裡,其他的thread都做完了,卻不能幫忙。 目前我是用multiprocessing.Queue,100個data全丟到queue, 每個thread處理完的自己去queue拿下一個,這樣比較沒有浪費到時間。 不知道大家有沒有其他更好的,或是現成就有我卻沒去用的? 因為我不確定multiprocessing.Pool是不是我要的~~ -- 看了神鵰俠侶,就應該知道年齡不是問題; 看了斷背山後,就應該知道性別不是問題; 看了金剛後,就應該明白是不是人也不是問題; 看了倩女幽魂以後,更要知道活不活著都不是問題…… -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.79.158 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1462283690.A.CA8.html
SocketAM2: pool 05/03 22:07
uranusjr: Pool 就是你要的沒錯 (不過用 queue 也不是不行) 05/03 22:43
tiefblau: pool 不過queue應該也差不多意思 05/03 22:46
tiefblau: 桌機開一百的話反而反效果 考慮一下機器CPU再去做 05/03 22:47
shemale: data有100個,但實際上我可以設定在跑的job只有5個10個吧 05/03 22:58
tiefblau: 那就是我的意思~ 所以你開一百條thread根本沒用 反而還 05/04 00:15
tiefblau: 花成本去開thread~ 05/04 00:15
uranusjr: @tiefblau 你根本沒看懂, 原 po 並沒有跑 100 條執行緒 05/04 02:44
uranusjr: 文章明明寫得很清楚 100 份 data 分給 10 個執行緒 05/04 02:45