【发布时间】:2017-04-26 16:43:49
【问题描述】:
import multiprocessing
class multiprocessing_issue:
def __init__(self):
self.test_mp()
def print_test(self):
print "TEST TEST TEST"
def test_mp(self):
p = multiprocessing.Pool(processes=4)
p.apply_async(self.print_test, args=())
print "finished"
if __name__ == '__main__':
multiprocessing_issue()
我在上面设置了一个简单的测试,创建一个类,调用apply_async 并使用一个应该打印"TEST TEST TEST" 的函数。当我运行它时,我看到打印了"finished",但它从未像预期的那样打印"TEST TEST TEST"。
谁能看到这个简单测试用例中的错误?我已将其设置为重现我在代码中使用它的方式。
Ubuntu 上的 Python 2.7
【问题讨论】:
-
这是什么版本的 Python?什么操作系统?
-
在 2.7 和 Windows 上,我也得到“完成”,然后是
ImportError: No module named tmp0jekzi的所有进程严重崩溃,可能是因为pool没有被if __name__ == '__main__'屏蔽
标签: python asynchronous multiprocessing