Python fournit plusieurs moyens d’exécuter du code en parallèle, notamment les modules threading et multiprocessing.
1. Le module Threading:
Python utilise des threads pour permettre à plusieurs tâches de s’exécuter simultanément. Les threads peuvent être utiles pour créer des tâches telles que l’I/O non bloquant, où le programme ne doit pas attendre la fin de l’opération en cause.
Exemple:
```
from threading import Thread
def your_function(): print(“Hello from a thread”)
threads = []
for i in range(5):
t = Thread(target=your_function)
threads.append(t)
t.start()
for t in threads:
t.join()
```
1. Le module Multiprocessing:
Le module multiprocessing de Python est une autre méthode pour obtenir le parallélisme. Il contourne la Global Interpreter Lock (GIL) qui peut entraver les threads. Le multiprocessing permet la création de processus, et chaque processus a sa propre mémoire Python et son propre GIL. Par conséquent, les processus peuvent réellement fonctionner en parallèle sur plusieurs CPU.
Exemple:
```
from multiprocessing import Process
def your_function(): print(“hello world”)
if name == main
process = Process(target=your_function)
process.start()
process.join()
```
Ces deux méthodes ont des avantages et des inconvénients spécifiques, notamment en termes de complexité de mise en œuvre, de gestion de la mémoire et de la communication entre les threads ou les processus.
Note: L’exécution de code Python en parallèle peut ne pas toujours accélérer votre programme. Cela dépend du nombre de CPU disponibles, et de la nature de votre programme. En outre, la synchronisation entre les threads ou les processus peut parfois entraîner une attente, ce qui peut ralentir le programme.