我在研究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()
的用途,因为它不是守护进程,即使我删除它也看不到任何更改
https://stackoverflow.com/questions/15085348
复制相似问题