Démarrer un fil en Python

Fumbani Banda 15 février 2024
  1. Définition du fil
  2. Implémentation de threads en Python
  3. Visualisation du filetage
Démarrer un fil en Python

Ce tutoriel présentera le module threading pour créer et démarrer un thread en Python.

Définition du fil

Un thread est un ensemble d’opérations qui doivent être exécutées. Les threads en cours d’exécution signifient que le programme aura deux ou plusieurs choses en cours d’exécution à la fois. Un thread ne peut s’exécuter que dans un seul cœur du CPU. Le threading concerne la façon dont nous gérons les threads dans un cœur de processeur.

Implémentation de threads en Python

Python utilise le module threading pour implémenter des threads dans les programmes. Vous pouvez créer une instance Thread, puis l’appeler pour démarrer un thread séparé.

Lorsque vous créez une instance Thread, vous transmettez une fonction et une liste d’arguments pour cette fonction. Dans ce cas, vous dites au Thread d’exécuter la fonction thread_function() et de lui passer 1 en argument.

La thread_function() enregistre certains messages et se met en veille pendant deux secondes.

# python 3.x
from threading import Thread
import time
import logging


def thread_function(name):
    logging.info("Thread %s: starting", name)
    time.sleep(2)
    logging.info("Thread %s: finishing", name)


if __name__ == "__main__":
    format = "%(asctime)s: %(message)s"
    logging.basicConfig(format=format, level=logging.INFO, datefmt="%H:%M:%S")
    thread = Thread(target=thread_function, args=(1,))
    thread.start()
    logging.info("Exiting")

Production:

10:23:58: Thread 1: starting
10:23:58: Exiting
10:24:00: Thread 1: finishing

Visualisation du filetage

Le déroulement du programme est donné ci-dessous. Une fois que vous appelez start(), il déclenche thread_function() et s’exécute dans un thread séparé. Le programme principal s’exécute également en parallèle comme un autre thread.

démarrer le fil en python

Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Article connexe - Python Thread