Maison  >  Article  >  développement back-end  >  Comment utiliser le module de threading pour créer et gérer des threads dans Python 3.x

Comment utiliser le module de threading pour créer et gérer des threads dans Python 3.x

WBOY
WBOYoriginal
2023-08-04 10:37:041069parcourir

Comment utiliser le module de threading pour créer et gérer des threads dans Python 3.x

Introduction :
Avec les performances puissantes des ordinateurs, le multithreading est devenu une méthode courante de traitement parallèle. Dans la bibliothèque standard de Python, il existe un module pratique : le threading. Cet article explique comment utiliser le module de threading dans Python 3.x pour créer et gérer des threads, et l'illustre avec des exemples de code.

1. Qu'est-ce qu'un fil ?
Un thread est un processus indépendant exécuté en un seul processus. Il s'agit de la plus petite unité de planification par le système d'exploitation. Un processus peut contenir plusieurs threads, qui partagent les ressources du processus mais ont également leurs propres états et chemins d'exécution. Le multithreading peut exécuter plusieurs tâches en même temps et améliorer l'efficacité du programme.

2. Pourquoi utiliser des fils de discussion ?
Dans certains cas, plusieurs tâches doivent être effectuées en même temps, comme télécharger plusieurs fichiers en même temps, traiter de grandes quantités de données en même temps, etc. Les threads peuvent être utilisés pour exécuter ces tâches en parallèle et améliorer l'efficacité du programme. De plus, les threads peuvent également être utilisés pour traiter certaines opérations nécessitant une réponse en temps réel, telles que la mise à jour de l'interface utilisateur, le traitement des entrées utilisateur, etc.

3. Utilisez le module de thread pour créer et gérer des threads
En Python, vous pouvez facilement créer et gérer des threads à l'aide du module de thread. Voici quelques opérations couramment utilisées :

  1. Créer un fil de discussion
    Vous pouvez créer un fil de discussion en héritant de la classe Thread ou en passant le paramètre cible. L'héritage de la classe Thread nécessite de remplacer la méthode run et de démarrer le thread en appelant la méthode start. Lors du passage du paramètre target, vous devez définir une fonction comme corps d'exécution du thread.

L'exemple de code est le suivant :

import threading

# 继承Thread类
class MyThread(threading.Thread):
    def run(self):
        # 线程的执行体
        print("In MyThread")

# 定义线程的执行体
def thread_func():
    print("In thread_func")

# 创建线程
t1 = MyThread()
t2 = threading.Thread(target=thread_func)

# 启动线程
t1.start()
t2.start()
  1. Définir les attributs du thread
    Vous pouvez utiliser la méthode setDaemon pour définir le thread comme thread démon. Lorsque le thread principal se termine, le thread démon se termine. Utilisez les méthodes setName et getName pour définir et obtenir le nom du thread.

L'exemple de code est le suivant :

import threading
import time

def thread_func():
    print("In thread_func")
    time.sleep(2)
    print("Thread finished")

# 创建线程
t = threading.Thread(target=thread_func)
t.setDaemon(True)
t.setName("DemoThread")

# 启动线程
t.start()

# 主线程继续执行
print("Main thread")
  1. Synchronisation des threads
    Il peut y avoir des ressources partagées entre les threads. Afin d'éviter les conditions de concurrence critique et les incohérences des données, des verrous peuvent être utilisés pour synchroniser les opérations des threads.

L'exemple de code est le suivant :

import threading

# 共享资源
counter = 0
lock = threading.Lock()

# 线程的执行体
def thread_func():
    global counter
    for _ in range(100000):
        # 获取锁
        lock.acquire()
        counter += 1
        # 释放锁
        lock.release()

# 创建线程
t1 = threading.Thread(target=thread_func)
t2 = threading.Thread(target=thread_func)

# 启动线程
t1.start()
t2.start()

# 等待线程结束
t1.join()
t2.join()

# 打印结果
print("counter =", counter)

4. Résumé
L'utilisation du module de thread peut facilement créer et gérer des threads et réaliser un traitement parallèle de multi-tâches. Lors de l'écriture de programmes multithread, vous devez faire attention aux problèmes de synchronisation entre les threads pour éviter les conditions de concurrence et les incohérences des données. J'espère que cet article vous a été utile pour créer et gérer des threads à l'aide du module de threading dans Python 3.x.

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