玩蛇网提供最新Python编程技术信息以及Python资源下载!

python multiprocessing返回结果的规则是什么

from multiprocessing import Pool
import time

def analyse_url(url):
    #do something with this url
    time.sleep(1)
    print url,

if __name__ == '__main__':
    f =  open("test.ip")
    url_list = f.readlines()
    pool = Pool(processes=3)
    result = pool.map(analyse_url, url_list)

在用multiprocessing 进行多进程并发处理时,返回结果不是按读取文件时的顺序返回的,有办法解决没有,能放出代码就最好了,多谢!

result就是有顺序的啊

如果你是要求返回值是顺序的, 你原来的代码 result 就是个按原顺序返回的列表
如果你一定要在多进程里面 print. 那爱莫能助

进程由操作系统调度,要按照顺序来的话只能使用同步机制,如加锁,这样就和单进程处理是一样的。

另:真的有顺序要求吗?

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19216.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月31日 - 17时27分57秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules