Leí en alguna parte que la excepción KeyboardInterrupt solo la lee el hilo principal en Python. También leí que el hilo principal está bloqueado mientras se ejecuta el hilo hijo. Entonces, ¿esto significa que CTRL + C nunca se puede llegar al subproceso secundario. He probado el siguiente código:Ctrl-c i.e. KeyboardInterrupt para matar los hilos en python
def main():
try:
thread1.start() #thread is totally blocking e.g. while (1)
thread1.join()
except KeyboardInterrupt:
print "Ctrl-c pressed ..."
sys.exit(1)
En este caso no hay ningún efecto de CTRL +C en la ejecución. Es como si no pudiera escuchar la interrupción. ¿Estoy entendiendo esto de la manera incorrecta? ¿Hay alguna otra manera de matar el hilo usando CTRL + C?
Ver http://stackoverflow.com/questions/323972/is-there -any-way-to-kill-a-thread-in-python –
Tu hilo principal no está bloqueado porque inicias otro hilo. ¿Cuál sería el sentido de los hilos si eso fuera cierto? Es porque está llamando a thread1.join(), que SÍ bloquea hasta que thread1 esté listo. – Falmarri