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


from multiprocessing import Poolimport timedef 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. 那爱莫能助

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

另:真的有顺序要求吗?

编橙之家文章,

评论关闭