Je suis pas un expert en la matière mais je crois que le threading en Python est un peu chelou, a la base, ca consiste a "partager" les différentes tâches a faire aux différents coeurs du processeur. Mais je crois qu'en python, ca ne fait pas vraiment ca, ca créer des threads virtuels, ou un truc du genre.
Enfin bref, voila quelques leins :
- https://openclassrooms.com/courses/apprenez-a-programmer-en-python/la-programmation-parallele-avec-threading : explique très brièvement le truc
- https://docs.python.org/3/library/threading.html : la documentation officielle, avec toutes les commandes
Une des notion les plus importantes du threading, c'est le lock ; en gros, imaginons qu'une tache A et une tache B vont être effectuées, et que la tache B utilise des variables qui sont modifiées dans la tâche A. Comme avec les threads, les 2 tâches vont être effectuées "simultanément", le lock permet "de dire a la tâche B"d'utiliser tout au long de son exécution les variables comme elles étaient avant d'être modifiées par la tâche A. Pour cela, il faut stocker en mémoire "l'état du programme" (les valeurs des variables, etc ..) ce qui peut être couteux en performance, et au final rendre le threading inutile. Enfin bref j'explique très mal, jte laisse voir les liens 