當我打電話os.fork()
守護線程內,在子進程的主線程有daemon
屬性設置爲True
。這非常令人困惑,因爲程序保持運行,而唯一的線程是守護進程。根據文檔,如果所有的線程都是守護進程,程序應該退出。在守護進程線程中創建的進程的主線程是守護進程本身嗎?
下面是一個例子:
import os
import threading
def child():
assert not threading.current_thread().daemon # This shouldn't fail
def parent():
new_pid = os.fork()
if new_pid == 0:
child()
else:
os.waitpid(new_pid, 0)
t = threading.Thread(target=parent)
t.setDaemon(True)
t.start()
t.join()
是它的CPython的實現中的錯誤?
我是否正確地糾正你的問題? –
是的,謝謝! –