1
justfly OP 主要代码如下:
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count()) for book in books: ....pool.apply_async(task, (book.book_id, book.cp_id)) pool.close() pool.join() |
2
hahastudio 2013-12-30 10:34:44 +08:00
1. 不清楚= =
2. Pool的话,只要池里有一个结束了就能上新任务吧 你说的“等到所有进程都完成了任务再开始新的一轮”应该是因为你这几个进程基本同时开的,工作任务基本一致,然后就基本能同时做完,那么当然感觉上是都做完了再开新的一轮。 现象你可以跑下面的代码看看,比如我这里Process 0 先跑完,然后8就跟着起来了,而不是等1~7结束 3. 是不是主进程没有pool.join()? https://gist.github.com/hahastudio/8177137 |
3
hahastudio 2013-12-30 10:36:50 +08:00 1
撞上了= =有join的话= =不清楚= =
|
4
powerfj 2013-12-30 13:06:47 +08:00
建议别用多进程编程,坑多,可以试试gevent,如果scrapy可以实现功能,就用scrapy吧..
|