我正在研究python線程並遇到了join()
。在python線程中使用join()有什麼用途
作者告訴我,如果線程處於守護進程模式,那麼我需要使用join()
,這樣線程才能在主線程終止之前自行完成。
,但我一直在使用t.join()
即使t
沒有daemon
示例代碼也沒見他是這個
import threading
import time
import logging
logging.basicConfig(level=logging.DEBUG,
format='(%(threadName)-10s) %(message)s',
)
def daemon():
logging.debug('Starting')
time.sleep(2)
logging.debug('Exiting')
d = threading.Thread(name='daemon', target=daemon)
d.setDaemon(True)
def non_daemon():
logging.debug('Starting')
logging.debug('Exiting')
t = threading.Thread(name='non-daemon', target=non_daemon)
d.start()
t.start()
d.join()
t.join()
我不知道什麼是使用t.join()
因爲它不是守護進程我可以看到沒有變化,即使我刪除它
標題+1。 '加入'似乎是專門用來鼓勵糟糕的性能,(通過不斷創建/終止/銷燬線程),GUI鎖定,(等待事件處理程序)和應用程序關閉失敗(等待不可中斷的線程終止)。注意 - 不僅僅是Python,這是一種跨語言的反模式。 – 2013-02-26 11:00:50