[英]Write to csv with Python Multiprocessing apply_async causes missing of data
[英]Python multiprocessing apply_async: what am I missing?
我试图了解多处理库的apply_async函数是如何工作的,但我一直在摸索。 我错过了什么?
from multiprocessing import Pool
import time
import threading
def test():
time.sleep(15)
print "test"
def test_launcher():
pool = Pool(processes=1)
result = pool.apply_async(test)
def printit():
threading.Timer(5.0, printit).start()
print time.strftime("%H:%M:%S", time.gmtime())
if __name__ == '__main__':
print "Before"
test_launcher()
print "After"
printit()
我不想等待test()的返回,我想继续并在完成时从test()获取打印信息。
经过2或3次打印后,是否应该打印“测试”?
如果希望主进程等待子进程,请添加:
pool.close()
pool.join()
最后一个打印语句之后。 否则,主流程将在子流程完成之前终止
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.