2011-08-13 81 views
0

當某些變量值設置爲true時如何終止線程?當某些變量設置爲true時立即終止線程

import threading 
class test(threading.Thread): 
    def __init__(self): 
     self.stopThread = False 
     self.start(): 
    def start(self): 
     while not self.stopThread: 
       callOtherFunction //which takes alomst 30 sec to execute 
    def stop(self): 
     self.stopThread = True 

現在的問題是,如果啓動函數被調用和while循環開始那麼它會檢查下一個迭代的停止條件,當它完成了它的內部工作,所以如果呼叫到callOtherFunction做出那麼仍然等待30秒退出..我想立即終止線程時,變量設置。可能嗎?

+0

可能重複[有什麼辦法殺死Python中的線程?](http://stackoverflow.com/questions/323972/is-there-any-way-to-kill-a-thread-in- python) –

+0

或者你應該使用多處理,如果你想立即殺死 –

回答

0

這個問題在這裏回答:

Is there any way to kill a Thread in Python?

的底線是,如果你能幫助它,你應該避免殺死線程這種方式。但是,如果你必須的話,你可以嘗試一些技巧。

而且,是線程安全的,你應該做一個self.stopThreadthreading.Event()使用set()clear()當線程應停止信號。