J'ai un tableau de discussions. Chacun d'eux appelle la méthode run en continu. À la fin de chaque méthode d'exécution, je veux qu'ils fassent une pause et attendent.Thread Python Pause et attendre
Comment puis-je obtenir les threads à exécuter un à la fois, puis continuer la boucle lorsque tous sont terminés? J'ai besoin qu'ils s'exécutent TOUJOURS dans l'ordre (ie: 1, 2, 3, 4 - 1, 2, 3, 4 ...)
J'utilise actuellement threading.Event, mais les résultats sont incohérents.
Merci
MISE À JOUR
Merci à tous pour vos réponses à ce jour. J'écris quelque chose de similaire à Robocode en python. Les joueurs programment un bot et les bots s'affrontent jusqu'à ce qu'il en reste un. Après chaque "tour", les robots sont "en pause" puis mis à jour et attirés vers l'écran. Ensuite, ils commencent tous un nouveau tour.
Exemple:
# Bot extends threading.Thread
class DemoBot(Bot):
def __init__(self):
super(DemoBot, self).__init__()
def run(self):
while True:
self.moveForward(100)
self.turnLeft(90)
Comme vous pouvez le voir, le robot est dans une boucle infinie. Dans la méthode moveForward, le robot avance de 100px. Mais afin de mettre à jour l'écran correctement, je dois me déplacer une fois, mettre en pause, mettre à jour, puis déplacer à nouveau. C'est pourquoi je dois être en mesure de "mettre en pause" un robot une fois qu'il est terminé et que le programme attende les autres avant de mettre à jour l'écran.
Espérons que cela a un peu plus de sens.
Si vous avez besoin de les exécuter séquentiellement, alors pourquoi utilisez-vous plusieurs threads? –
Peut-être en disant «ce que vous essayez d'atteindre» apportera de meilleures réponses –