2009-11-25 7 views
0

스레드에서 실행되는 종료 코드를 찾고 있는데 주 스크립트를 죽일 수 있습니다. 그것은 자이 썬이지만 java.lang.System.exit()을 사용할 수 없다. 왜냐하면 나는 아직도 실행중인 자바 애플리케이션을 원하기 때문에 sys.exit()가 작동하지 않기 때문이다. 이상적으로 메시지를 출력하고 종료하고 싶습니다. 내 코드는 threading.Timer 함수를 사용하여 일정 시간이 지나면 함수를 실행합니다. 여기에 1 초 이상 실행되는 for 루프를 끝내기 위해 사용하고 있습니다. 여기 내 코드는 다음과 같습니다.자이 썬 어떻게 스레드에서 스크립트를 중지 하시겠습니까?

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

답변

1

글쎄, 당신은 mainThread.stop()이라고 부를 수 있습니다. 그러나 그렇게해서는 안됩니다.

This article은 왜 당신이하려는 일이 나쁜 생각인지 설명합니다.

+0

hm이 이해됩니다. 스레드로부터 전체 스크립트를 안전하게 삭제할 방법이 없다는 말입니까? 나는 for 루프가 너무 오래 실행되기 때문에 exitFunct가 스크립트를 죽일 수있게하고 싶다. –

+0

원래 'KeyboardInterrupt'를 사용하려고했으나 작동하지 않습니다 ... –