【发布时间】:2015-10-29 11:03:41
【问题描述】:
我无法理解为什么守护进程从不产生“启动/退出”输出。在我调用 n.start() 的那一刻,似乎进程被杀死了
import multiprocessing
import time
import sys
def daemon():
p = multiprocessing.current_process()
print 'Starting:', p.name, p.pid
sys.stdout.flush()
print 'Exiting :', p.name, p.pid
sys.stdout.flush()
def non_daemon():
p = multiprocessing.current_process()
print 'Starting:', p.name, p.pid
sys.stdout.flush()
time.sleep(3)
print 'Exiting :', p.name, p.pid
sys.stdout.flush()
if __name__ == '__main__':
d = multiprocessing.Process(name='daemon', target=daemon)
d.daemon = True
n = multiprocessing.Process(name='non-daemon', target=non_daemon)
n.daemon = False
d.start()
n.start()
【问题讨论】:
-
更新:如果我在 d.start() 和 n.start() 之间添加 time.sleep(1) 代码似乎工作得很好。
标签: python python-multiprocessing