Я изучал потоки 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()
, поскольку он не является демоном, и я не вижу изменений, даже если я удалю его