2009-11-25 8 views
0

Je cherche un code de sortie qui sera exécuté à partir d'un thread mais qui sera capable de tuer le script principal. C'est en Jython mais je ne peux pas utiliser java.lang.System.exit() parce que je veux toujours lancer l'application Java, et sys.exit() ne fonctionne pas. Idéalement, je voudrais sortir un message puis quitter. Mon code utilise la fonction threading.Timer pour exécuter une fonction après une certaine période de temps. Ici, je l'utilise pour terminer une boucle for qui s'exécute pendant plus de 1 seconde. Voici mon code:Jython Comment arrêter le script d'un thread?

import threading 
def exitFunct(): 
    #exit code here 
t = threading.Timer(1.0, exitFunct) 
t.start() 
for i in range(1, 2000): 
    print i 

Répondre

1

Eh bien, si vous deviez, vous pouvez appeler mainThread.stop(). Mais tu ne devrais pas.

This article explique pourquoi ce que vous essayez de faire est considéré comme une mauvaise idée.

+0

hm compris. alors dites-vous qu'il n'y a aucun moyen de tuer en toute sécurité le script entier à partir d'un fil? Je veux juste que exitFunct soit capable de tuer le script, car la boucle for fonctionnera trop longtemps. –

+0

à l'origine j'ai essayé d'utiliser 'KeyboardInterrupt' mais ça ne marcherait pas non plus ... –