我在 python 中使用多重处理时遇到问题。以下代码将停止并且不会抛出任何错误消息:
from multiprocessing import Manager
print("ok1")
manager = Manager()
print("ok2")
它不打印第二个ok。
我尝试在多处理源代码中添加一些打印,以查看它停止的位置。好像就到这里了:
def Manager(self):
'''Returns a manager associated with a running server process
The managers methods such as `Lock()`, `Condition()` and `Queue()`
can be used to create shared objects.
'''
from .managers import SyncManager
m = SyncManager(ctx=self.get_context())
m.start()
return m
导入后。 我可以做什么来解决这个问题?谢谢!
如图所示的代码在 Windows 上运行不会出现错误。在其他平台上,您需要确保代码在主程序中执行 - 例如,
from multiprocessing import Manager
if __name__ == '__main__':
print("ok1")
with Manager() as _:
print("ok2")
...在 macOS、Linux 等上运行不会出现错误。