• # RE: Detecter la fin d'un Thread

    Posté par (site web personnel) . En réponse au message Detecter la fin d'un Thread. Évalué à 2.

    http://docs.python.org/lib/event-objects.html

    un exemple de code ça parle plus :-)



    import threading
    import time

    class Client(threading.Thread):
    ....def __init__(self, event):
    ........threading.Thread.__init__(self)
    ........self.event = event

    ....def run(self):
    ........print "test"
    ........time.sleep(1)
    ........print "finished"
    ........self.event.set()

    class Server(threading.Thread):

    ....def __init__(self):
    ........threading.Thread.__init__(self)
    ........self.clients = []

    ....def run(self):
    ........print "server started"

    ........for i in range(0,10):
    ............e = threading.Event()
    ............c = Client(e)
    ............self.clients.append(c)
    ............c.start()

    ........while 1:
    ............terminatedClient = []

    ............if len(self.clients) == 0:
    ................return

    ............for x in self.clients:
    ................if x.event.isSet():
    ....................terminatedClient.append(x)

    ............for x in terminatedClient:
    ................self.clients.remove(x)


    if __name__ == "__main__":
    ....server = Server()
    ....server.start()