Maison >développement back-end >Tutoriel Python >Comment utiliser le module de thread pour la gestion multi-thread dans Python 3.x
Comment utiliser le module de threading pour la gestion multi-thread dans Python 3.x
Introduction :
Dans le domaine informatique, le multi-threading est un modèle de programmation important qui peut améliorer la concurrence et l'efficacité d'exécution du programme. Le langage Python fournit le module de threading pour faciliter la gestion des développeurs multi-threads. Cet article présentera comment utiliser le module de threading pour la programmation multi-thread et démontrera l'utilisation du multi-thread à travers des exemples.
import threading count = 0 # 共享资源 lock = threading.Lock() # 互斥锁 def increase(): global count for _ in range(100000): lock.acquire() # 加锁 count += 1 lock.release() # 解锁 def decrease(): global count for _ in range(100000): lock.acquire() # 加锁 count -= 1 lock.release() # 解锁 if __name__ == '__main__': # 创建两个线程 t1 = threading.Thread(target=increase) t2 = threading.Thread(target=decrease) # 启动线程 t1.start() t2.start() # 等待线程结束 t1.join() t2.join() # 输出结果 print("count:", count)
Dans l'exemple ci-dessus, nous avons créé deux threads t1 et t2, appelant respectivement les fonctions augmenter() et diminuer() pour opérer sur le nombre de ressources partagées. Puisque Lock est utilisé, aucun conflit ne se produit. Enfin, la valeur du nombre de résultats est affichée.
import threading count = 0 # 共享资源 lock = threading.Lock() # 互斥锁 condition = threading.Condition() # 条件变量 def produce(): global count while True: with condition: if count >= 10: condition.wait() # 释放锁并等待条件变量 count += 1 print("Produced 1 item") condition.notify() # 通知等待的线程 def consume(): global count while True: with condition: if count <= 0: condition.wait() # 释放锁并等待条件变量 count -= 1 print("Consumed 1 item") condition.notify() # 通知等待的线程 if __name__ == '__main__': # 创建两个线程 t1 = threading.Thread(target=produce) t2 = threading.Thread(target=consume) # 启动线程 t1.start() t2.start() # 等待线程结束 t1.join() t2.join()
Dans l'exemple ci-dessus, nous avons créé deux threads t1 et t2 et appelé respectivement les fonctions produire() et consommer() pour simuler les scénarios de producteur et de consommateur. En utilisant la classe Condition, la synchronisation et la communication entre les threads sont obtenues. Lorsque le compteur ne remplit pas la condition, le thread attend et continue d'exécuter d'autres threads jusqu'à ce que la condition soit remplie, en informant le thread en attente.
Résumé :
Cet article présente comment utiliser le module de threading pour la gestion multi-thread dans Python 3.x. Les opérations de base du multithreading et l’utilisation de la synchronisation des threads sont démontrées à travers un exemple de code. Une utilisation raisonnable du multithreading peut améliorer l'efficacité et la simultanéité de l'exécution du programme, mais en même temps, il faut prêter attention aux problèmes de sécurité des threads et de partage de données. Dans les applications réelles, il suffit de choisir la solution multithread appropriée en fonction des besoins spécifiques.
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!