J'ai lu quelque part que l'exception KeyboardInterrupt est uniquement lue par le thread principal en Python. J'ai également lu que le thread principal est bloqué pendant que le thread enfant s'exécute. Cela signifie donc que CTRL + C ne peut jamais atteindre le thread enfant. J'ai essayé le code suivant:Ctrl-c c'est-à-dire KeyboardInterrupt pour tuer les threads dans 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)
Dans ce cas, il n'y a pas d'effet de CTRL +C sur l'exécution. C'est comme si elle n'était pas capable d'écouter l'interruption. Est-ce que je comprends cela de la mauvaise façon? Y at-il un autre moyen de tuer le fil en utilisant CTRL + C?
Voir http://stackoverflow.com/questions/323972/is-there -tout-le-chemin-pour-tuer-un-thread-en-python –
Votre thread principal n'est pas bloqué parce que vous démarrez un autre thread. Quel serait le point de fils si c'était vrai? C'est parce que vous appelez thread1.join(), qui bloque jusqu'à ce que thread1 soit terminé. – Falmarri