qu'est-ce que l'utilisation de join() en python threading

J'étudiais le python threading et est venu à travers join().

L'auteur dit que si le thread est en mode démon puis-je utiliser join() de sorte que le fil peut finir lui-même avant les principaux thread se termine.

mais j'ai aussi vu à l'aide de t.join() même si t n'était pas daemon

exemple de code est ce

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 qu'est-ce que l'utilisation de t.join() comme il n'est pas le démon et je ne vois pas de changement, même si je le supprime

  • +1 pour le titre. "Rejoindre" semble être spécialement conçu pour encourager de mauvaises performances (par la création sans cesse/fin/à la destruction de threads), GUI de blocage, (en attente dans le cas des gestionnaires) et de l'application de l'arrêt des échecs, (en attente de secours threads terminer). Remarque - pas seulement en Python, c'est une croix de langue anti-modèle.