[英]Python multiprocessing.Pool workers remain idle
我是 Python 的初學者。 我正在嘗試使用 multiprocessing.Pool 運行一個簡單的 function,但是當我運行該程序時,它沒有得到處理。 我可以看到產生了不同的進程,但它們仍然處於空閑狀態。 例如,下面的代碼確實生成了兩個工作進程,但沒有 output 並且沒有別的:
import multiprocessing
def f(x):
print("Process "+str(x))
return True
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=2)
result = pool.map(f, range(1000))
我正在使用 Microsoft Visual Studio 2019 運行 Python 3.9。操作系統是 Windows 10。我在這台計算機上使用 Python 3 時遇到了同樣的問題。 我在另一台計算機上嘗試了相同的代碼(還有 Windows 10,VS2019),它工作正常。 不同的是,這個有一個i9 處理器,而另一個有一個 i7。
我在網上搜索過,但我沒有遇到任何類似的問題或任何解決我的問題的方法。 有誰知道為什么會發生這種情況和/或可能的修復? 處理器的類型可能與它有關嗎? 謝謝!
這只是一個猜測:
我知道這不會在 Jupyter Notebook 或交互式解釋器下運行。 請參閱多處理文檔,特別是以下部分:
這些環境的解決方案是將您的工人 function, f
放在一個單獨的模塊中,例如worker.py ,然后導入工人 function:
import multiprocessing
from worker import f
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=2)
result = pool.map(f, range(1000))
試一試,讓我們知道其他也有 Visual Studio 的人是否有效。 謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.