Multithreading en Python
Full article | 3 min read |
Comment le multithreading de Python diffère des autres langages de programmation
Introduction 🌟
Python, comme de nombreux langages de programmation, prend en charge le multithreading. Cependant, les capacités de multithreading de Python sont distinctes en raison du Global Interpreter Lock (GIL), ce qui impacte son efficacité. Dans cet article, nous allons explorer le multithreading de Python, le rôle du GIL et comment il se compare à d’autres langages de programmation.
Comprendre les processus et les threads
Qu’est-ce qu’un processus ?
Un processus est une instance d’un programme s’exécutant sur votre ordinateur. Chaque processus fonctionne de manière indépendante avec son propre espace mémoire. Lorsque vous exécutez un programme, il devient un processus, qui peut être mono-thread ou multi-thread. Un processus mono-thread exécute une tâche à la fois.
Qu’est-ce qu’un thread ?
Les threads sont des unités plus petites d’un processus qui peuvent s’exécuter simultanément. Par exemple, un programme qui calcule le carré et le cube des nombres peut utiliser des threads pour effectuer les deux calculs simultanément.
Exemple mono-thread
def calculate_square():
for i in range(1, 101):
square = i ** 2
print(f"Le carré de {i} est : {square}")
if __name__ == "__main__":
calculate_square()
Exemple multi-thread
import threading
def calculate_square():
for i in range(1, 101):
square = i ** 2
print(f"Le carré de {i} est : {square}")
def calculate_cube():
for i in range(1, 101):
cube = i ** 3
print(f"Le cube de {i} est : {cube}")
if __name__ == "__main__":
square_thread = threading.Thread(target=calculate_square)
cube_thread = threading.Thread(target=calculate_cube)
square_thread.start()
cube_thread.start()
square_thread.join()
cube_thread.join()