簡體   English   中英

Python 多處理在不退出文件的情況下失去活動

[英]Python multiprocessing loses activity without exiting file

我有一個問題,my.py 文件通過多處理使用最大 CPU,在不退出 .py 文件的情況下停止運行。

我正在執行一項繁重的任務,該任務使用舊 MacBook Pro (2012) 中的所有內核。 該任務一開始運行良好,我可以直觀地看到四個 python3.7 任務填充了活動監視器 window。 然而,大約 20 分鍾后,這四個 python3.7 從活動監視器中消失了。

最奇怪的部分是 multiprocessing.py 文件仍在運行,即它從未拋出未捕獲的異常或退出文件。

你們對發生的事情有什么想法嗎? 我的猜測是 1)這很可能是腳本中的錯誤,以及 2)舊計算機過熱。

謝謝!

編輯:下面是多進程代碼,其中要執行的多進程 function 是func ,其參數為列表。 我希望這有幫助!

import multiprocessing

def main():
    pool = multiprocessing.Pool()
    for i in range(24):
        pool.apply_async(func, args = ([], ))
    pool.close()
    pool.join()

if __name__ == '__main__':
    main()

使用上下文管理器正確處理關閉進程。

from multiprocessing import Pool

def main():
    with Pool() as p:
        result = p.apply_async(func, args = ([], ))
        print(result)

if __name__ == '__main__':
    main()

我不確定你對for i in range()部分做了什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM