开发者

Terminate thread immediately when some variable set to true

how to terminate the thread when some variable value set to 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 execut开发者_运维问答e
     def stop(self):
         self.stopThread = True

now the problem is that if the start function is called and while loop started then it will check the stop condition on next iteration, when it completed its internal work, so if the call is made to callOtherFunction then it still waits 30 sec to exit.. i want to immediately terminate the thread when the variable is set. is it possible?


This question was answered here:

Is there any way to kill a Thread in Python?

The bottom line is that, if you can help it, you should avoid killing a thread this way. However, if you must, there are some tricks you can try.

Also, to be thread-safe, you should make self.stopThread a threading.Event() and use set() and clear() to signal when the thread should be stopped.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜