簡體   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