Python多进程在unittest中不起作用
我在我的单元测试中运行这个:
# test thread safe
def test_process(i):
print i
time.sleep(1)
print i, i
for i in range(100):
p = Process(target=test_process(), args=(i,))
p.start()
但是它是一个接一个地运行:
0
0 0
1
1 1
2
2 2
3
3 3
4
4 4
5
5 5
6
6 6
7
7 7
我本来期待它能先打印出所有的单个 i
,我哪里做错了呢?
2 个回答
0
真是笨,我直接用()
来调用这个函数。
这样做是有效的:
p = Process(target=test_process, args=(i,))
2
你的问题是你在下面这一行过早地调用了 test_process
p = Process(target=test_process(), args=(i,))
把这一行换成
p = Process(target=test_process, args=(i,))
这样它就只会在新进程被创建后执行一次。