我试图了解多处理库的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次后?
答案 0 :(得分:0)
如果您希望主进程等待子进程,请添加:
pool.close()
pool.join()
在最后一个打印声明之后。否则,主进程将在子进程完成之前终止