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 进行多进程并发处理时,返回结果不是按读取文件时的顺序返回的,有办法解决没有,能放出代码就最好了,多谢!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
进程由操作系统调度,要按照顺序来的话只能使用同步机制,如加锁,这样就和单进程处理是一样的。
另:真的有顺序要求吗?
如果你是要求返回值是顺序的, 你原来的代码
result就是个按原顺序返回的列表如果你一定要在多进程里面 print. 那爱莫能助
result就是有顺序的啊