在我的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
,我在这里做错了什么?
答案 0 :(得分:2)
您的问题是您过早地在以下行中调用test_process
p = Process(target=test_process(), args=(i,))
用
替换此行p = Process(target=test_process, args=(i,))
因此只有在生成新进程后才会执行。
答案 1 :(得分:0)
愚蠢的我,我通过提供()
这有效:
p = Process(target=test_process, args=(i,))