【发布时间】:2012-08-13 21:33:02
【问题描述】:
我预计terminate() 方法会杀死这两个进程:
import multiprocessing
import time
def foo():
while True:
time.sleep(1)
def bar():
while True:
time.sleep(1)
if __name__ == '__main__':
while True:
p_foo = multiprocessing.Process(target=foo, name='foo')
p_bar = multiprocessing.Process(target=bar, name='bar')
p_foo.start()
p_bar.start()
time.sleep(1)
p_foo.terminate()
p_bar.terminate()
print p_foo
print p_bar
运行代码给出:
<Process(foo, started)>
<Process(bar, started)>
<Process(foo, started)>
<Process(bar, started)>
...
我期待:
<Process(foo, stopped)>
<Process(bar, stopped)>
<Process(foo, stopped)>
<Process(bar, stopped)>
...
【问题讨论】:
-
+1 表示不错的标题。可能是重金属唱片的标题。
-
多处理总是让这些令人尴尬的令人敬畏的 cmets 将垂死的孩子变成僵尸,杀死他们的父母和其他东西。真是太棒了xD
标签: python linux multiprocessing