
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 日 1. 不清楚= = 2. Pool的话,只要池里有一个结束了就能上新任务吧 你说的“等到所有进程都完成了任务再开始新的一轮”应该是因为你这几个进程基本同时开的,工作任务基本一致,然后就基本能同时做完,那么当然感觉上是都做完了再开新的一轮。 现象你可以跑下面的代码看看,比如我这里Process 0 先跑完,然后8就跟着起来了,而不是等1~7结束 3. 是不是主进程没有pool.join()? https://gist.github.com/hahastudio/8177137 |
3 hahastudio 2013 年 12 月 30 日 撞上了= =有join的话= =不清楚= = |
4 powerfj 2013 年 12 月 30 日 建议别用多进程编程,坑多,可以试试gevent,如果scrapy可以实现功能,就用scrapy吧.. |