我很困惑为什么下面的代码块按其方式工作。当进程是守护程序并且不调用join()时,它何时调用join()。当它不调用join()时,似乎主进程终止,并且守护进程在主进程终止后都终止:from multiprocessing import Processimport osdef info(title): print(title) print('module name:', __name__) if hasattr(os, 'getppid'): # only available on Unix print('parent process:', os.getppid()) print('process id:', os.getpid())def f(name): info('function f') print('hello', name)if __name__ == '__main__': info('main line') p = Process(target=f, args=('bob',)) p.daemon = True p.start() #p.join()输出:main linemodule name: __main__parent process: 290process id: 4793join()称为:from multiprocessing import Processimport osdef info(title): print(title) print('module name:', __name__) if hasattr(os, 'getppid'): # only available on Unix print('parent process:', os.getppid()) print('process id:', os.getpid())def f(name): info('function f') print('hello', name)if __name__ == '__main__': info('main line') p = Process(target=f, args=('bob',)) p.daemon = True p.start() p.join()输出:main linemodule name: __main__parent process: 290process id: 4807function fmodule name: __main__parent process: 4807process id: 4808hello bob
添加回答
举报
0/150
提交
取消
