[闲聊] 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