Sab*_* 錆兎 10 python multiprocessing
我正在学习 python 中的多处理。我有以下代码片段:
import time
import concurrent.futures
def wait(seconds):
print(f'Waiting {seconds} seconds...')
time.sleep(seconds)
return f'Done'
if __name__ == "__main__":
with concurrent.futures.ProcessPoolExecutor() as executor:
p = executor.submit(wait,1)
print(p.result())
Run Code Online (Sandbox Code Playgroud)
运行它给我这个错误:
BrokenProcessPool Traceback (most recent call last)
<ipython-input-19-8eff57e3a077> in <module>
9 with concurrent.futures.ProcessPoolExecutor() as executor:
10 p = executor.submit(do_something,1)
---> 11 print(p.result())
~\.conda\envs\w\lib\concurrent\futures\_base.py in result(self, timeout)
433 raise CancelledError()
434 elif self._state == FINISHED:
--> 435 return self.__get_result()
436 else:
437 raise TimeoutError()
~\.conda\envs\w\lib\concurrent\futures\_base.py in __get_result(self)
382 def __get_result(self):
383 if self._exception:
--> 384 raise self._exception
385 else:
386 return self._result
BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
Run Code Online (Sandbox Code Playgroud)
我在 Windows 计算机上,并且if __name__ == "__main__":在我的代码中使用了。但我仍然收到此错误。
Sab*_* 錆兎 10
我让它工作了!我将该wait函数保存在一个名为的单独的 python 文件中wait.py,并将其导入到 jupyter 笔记本中。
wait.py:
import time
def wait(seconds):
print(f'Waiting {seconds} seconds...')
time.sleep(seconds)
return f'Done'
Run Code Online (Sandbox Code Playgroud)
ipynb file:
import concurrent.futures
import wait #import the wait file
if __name__ == "__main__":
with concurrent.futures.ProcessPoolExecutor() as executor:
p = executor.submit(wait.wait,1)
print(p.result())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7979 次 |
| 最近记录: |