python multiprocessing 返回结果顺序问题?
怪我咯
怪我咯 2017-04-17 13:46:27
[Python讨论组]
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 进行多进程并发处理时,返回结果不是按读取文件时的顺序返回的,有办法解决没有,能放出代码就最好了,多谢!

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
PHP中文网

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

另:真的有顺序要求吗?

高洛峰

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

PHP中文网

result就是有顺序的啊

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号