Maison  >  Article  >  développement back-end  >  Comment utiliser la jointure de thread en python

Comment utiliser la jointure de thread en python

(*-*)浩
(*-*)浩original
2019-07-03 10:47:542480parcourir

Le rôle de la jointure est mis en évidence. Le travail effectué par la jointure est la synchronisation des threads, c'est-à-dire qu'une fois la tâche du thread principal terminée, elle entre dans l'état de blocage et attend la fin des autres sous-threads avant la fin de la tâche du thread principal. le fil se termine.

Comment utiliser la jointure de thread en python

join a un paramètre de délai d'attente : (Apprentissage recommandé : Tutoriel vidéo Python)

Lors de la configuration a guard Lors du threading, cela signifie que le thread principal tuera le thread enfant en attendant l'expiration du délai et quittera finalement le programme. Ainsi, s'il y a 10 sous-threads, le temps d'attente total est la somme cumulée de chaque timeout. Pour faire simple, il s'agit de donner à chaque sous-thread un délai d'attente et de le laisser l'exécuter lorsque le temps est écoulé, il sera tué directement, que la tâche soit terminée ou non.

Lorsque le thread démon n'est pas défini, le thread principal attendra l'accumulation du délai d'attente et une telle période de temps. Lorsque le temps est écoulé, le thread principal se termine, mais le thread enfant n'est pas tué. Le thread enfant peut toujours continuer à s'exécuter jusqu'à ce que tous les threads enfants se terminent et que le programme se termine.

Le rôle de join

import threading
import time

def run():

    time.sleep(2)
    print('当前线程的名字是: ', threading.current_thread().name)
    time.sleep(2)


if __name__ == '__main__':

    start_time = time.time()

    print('这是主线程:', threading.current_thread().name)
    thread_list = []
    for i in range(5):
        t = threading.Thread(target=run)
        thread_list.append(t)

    for t in thread_list:
        t.setDaemon(True)
        t.start()

    for t in thread_list:
        t.join()

    print('主线程结束了!' , threading.current_thread().name)
    print('一共用时:', time.time()-start_time)

Pour plus d'articles techniques liés à Python, veuillez visiter la colonne Tutoriel Python pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn