J'apprends à utiliser le threading
et le multiprocessing
en Python pour exécuter certaines opérations en parallèle et accélérer mon code.
J'ai du mal (peut-être parce que je n'ai aucun bagage théorique à ce sujet) à comprendre quelle est la différence entre une threading.Thread()
et un objet multiprocessing.Process()
un.
De même, je ne vois pas très bien comment instancier une file d'attente de travaux et faire en sorte que seuls 4 (par exemple) d'entre eux s'exécutent en parallèle, tandis que les autres attendent que les ressources se libèrent avant d'être exécutés.
Je trouve les exemples de la documentation clairs, mais pas très exhaustifs ; dès que j'essaie de compliquer un peu les choses, je reçois beaucoup d'erreurs bizarres (comme une méthode qui ne peut pas être décapée, etc.).
Alors, quand dois-je utiliser le threading
y multiprocessing
des modules ?
Pouvez-vous m'indiquer des ressources qui expliquent les concepts derrière ces deux modules et comment les utiliser correctement pour des tâches complexes ?