繁体   English   中英

Python多处理apply_async:我缺少什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM