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.