Python usando evento hilo como un miembro de objetivo

chaylins:

Tengo una clase, por ejemplo como el siguiente

Class Example(object):
   trigger_event = threading.Event()

    def set_trigger(self):
        # do some stuff
        self.trigger_event.set()

Lo que soy hallazgo es si tengo un grupo de estos objetos y procesarlos en un solo hilo, a continuación, una vez que el primer objeto tiene su conjunto de eventos, a continuación, todos los demás objetos que se establece así. ¿No hay manera de tener un miembro evento único para cada objeto individual?

Si tengo 10 objetos, e imprimir el is_set () para el evento antes de que llame set_trigger (), entonces se mostrará como FALSE, TRUE, TRUE, TRUE, etc ...

Gracias de antemano por cualquier ayuda o conocimiento!

Shubham Sharma:

Es probable que esté malinterpretando el Eventobjeto. El Eventobjeto se utiliza para la comunicación entre múltiples hilos: un hilo de señales de un evento y otros hilos esperar.

Un objeto de evento gestiona un indicador interno que puede ser ajustado a verdadero con el método set () y de restablecimiento a falso con el método clear (). Los bloques del método wait () hasta que el indicador es verdadero.

Pero si todavía quiere hacer eso, usted tiene que crear nuevo objeto de evento cada vez que se crea nueva instancia de Example. Así que es posible que tenga que hacer algo como:

class Example(object):
    def __init__(self):
        self.trigger_event = threading.Event()

    def set_trigger(self):
        # do some stuff
        self.trigger_event.set()

e1 = Example()
print(e1.trigger_event.is_set())
e1.set_trigger()
print(e1.trigger_event.is_set())

e2 = Example()
print(e2.trigger_event.is_set())
e2.set_trigger()
e2.trigger_event.wait()
print(e2.trigger_event.is_set())

Salida:

False
True
False
True

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=369234&siteId=1
Recomendado
Clasificación