J'étudiais le threading de python et je suis tombé sur join()
.
L'auteur a dit que si le thread est en mode démon, je dois utiliser join()
pour que ce thread puisse se terminer avant que le thread principal ne se termine.
mais je l'ai aussi vu utiliser t.join()
même si t
n'était pas daemon
Voici un exemple de code
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()
Je ne sais pas à quoi ça sert t.join()
car ce n'est pas un démon et je ne vois aucun changement même si je le supprime.