Salut,
Envoyé par
Andarus
Les Threads en python sont une mauvaise idée pour accélérer un programme, python(cpython) ne peut s'exécuter que sur un seul 'cœur'
.
En fait, si vous regardez mieux ce que fait le PO, il n'utilise les threads que pour executer os.system. Dans ce cas, le système d'exploitation parallélise des process indépendants sur différents processeurs. Les threads Python attendent que çà se termine.
Envoyé par
halleck314
Les lignes suivantes exécutée dans chaque thread posent problème :
ex: dans le k-ième thread
os.chdir('dossier_k')
os.system('./monProgramme_copie_k')
os.chdir('../')
il y a sans doute mieux comme approche pour exécuter en parallèle différents programmes avec python.
En supposant que le problème soit du à os.chdir qui sera "global", il serait judicieux de remplacer cela par:
os.system('cd dossier_k; ./monProgramme_copie_k')
dit autrement, on change le répertoire courant dans le contexte de l'appelé...
- W
edit: les threads ne permettent ici que de lancer les appels à os.system sans se retrouver bloqué à attendre la fin de la commande exécutée. Appeler directement subprocess.Popen serait bien plus simple.
Partager