URL: https://linuxfr.org/forums/programmation-python/posts/threads-help Title: Threads : Help ! Authors: roduit Date: 2009年10月27日T15:48:41+01:00 Tags: Score: 1 Bonjour, J'essaye de jouer un peu avec les threads. Mon but est de créer une classe avec plusieurs méthodes. Dans l'idéal, cette classe est un thread qui tourne et je lui demande de faire différentes choses à différents moments. Le tout étant qu'il ne fasse pas deux choses en même temps (lock). Je n'ai pas encore bien compris comment tout ça fonctionnait, et la doc n'est pas très explicite... J'ai réussi à faire à peu près ce que je voulais, mais ça me parait vraiment bourrin : #!/usr/bin/python # -*- coding: ISO-8859-15 -*- from threading import Thread from time import sleep class ComplexThread(Thread):     def __init__(self):        Thread.__init__(self)        self.target = None        self.lock = 0     def run(self):        while 1:              if self.target == 'funct_1' :                 self.lock = 1                 self.funct_1()                 self.target = None                 self.lock = 0              elif self.target == 'funct_2' :                 self.lock = 1                 self.funct_2()                 self.target = None                 self.lock = 0              elif self.target == 'stop':                 break        pass     def set_target(self, target):        self.target = target        print target     def funct_1(self):        print("In function 1")        sleep(2)        print('finished funct_1')     def funct_2(self):        print('In function 2')        sleep(2)        print('finished funct_2') if __name__=='__main__':     test = ComplexThread()     test.start()     test.set_target('funct_1')     sleep(0.1)     while test.lock:        print('.')        sleep(0.1)     test.set_target('funct_2')     sleep(0.1)     while test.lock:        print('o')        sleep(0.1)     test.set_target('stop') Merci pour votre aide !