elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: [Aporte] Mejores practicas en Java


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderador: Eleкtro)
| | |-+  Uso de isAlive() para saber cuando termina un hilo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Uso de isAlive() para saber cuando termina un hilo  (Leído 242 veces)
searching

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Uso de isAlive() para saber cuando termina un hilo
« en: 24 Agosto 2017, 22:04 »

#todo el programa funciona bien,ecepto que no respeta la condición isAlive()
#cuando if t.isAlive() == True: si funciona, que es cuando el hilo esta vivo
# cuando if t.isAlive() == False: no funciona, supongo que el hilo devuelve False
# cuando termina el hilo.
# pero por los resultados creo que no devuelve False.
#existe otra instrucción para saber que flag dá el hilo al termino de su proceso?
# o de que otra forma podría manejarlo
#gracias

from threading import Timer
opcion = -1
def motor01():
    print ("fin motor 1\n")

def motor02():
    print ("fin motor 2\n")

while (opcion !=0 ):
    opcion = int (input("opcion deseada "))
    if opcion == 1:
        t = Timer(10.0, motor01)
        t.start() # after 30 seconds, "hello, world" will be printed
        if t.isAlive()== False:
            print ("hacer algo" )
    if opcion == 2:
        t = Timer(10.0, motor02)
        t.start() # after 30 seconds, "hello, world" will be printed
        if t.isAlive() == False:
           print ("realizae x acción")


En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.043


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Uso de isAlive() para saber cuando termina un hilo
« Respuesta #1 en: 24 Agosto 2017, 22:27 »

Hola!

Fíjate la respuesta que da Cédric Julien aquí: https://stackoverflow.com/questions/11083349/python-threading-timer-stays-alive-after-calling-cancel-method

Usar Thread.join() es lo que necesitas, si quieres esperar hasta que el thread termine.

Saludos!


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines