如何检查模块线程(在Python 3 _thread中)生成的线程是否正在运行?

时间:2014-03-23 15:07:29

标签: python multithreading python-2.7

然而,线程模块对我有用。如何检查模块线程(在Python 3 _thread中)生成的线程是否正在运行?当线程正在执行的功能结束时,线程也会结束,或者不会结束?

def __init__(self):
    self.thread =None
......
if self.thread==None or not self.thread.isAlive() :
        self.thread = thread.start_new_thread(self.dosomething,())
else:
        tkMessageBox.showwarning("XXXX","There's no need to have more than two threads")

我知道在" thread"中没有名为isAlive()的函数。模块,还有其他选择吗?

但是没有任何理由可以使用"线程"模块,有吗?

1 个答案:

答案 0 :(得分:0)

除非你真的需要内部thread_thread模块的低级功能,否则你真的应该使用threading模块。它使一切都更容易使用并且确实来了使用is_alive等帮助程序。

顺便说一下。像在示例代码中那样重新启动线程的替代方法是保持其运行,但让它等待其他作业。例如。你可以在某个地方有一个队列来跟踪你想让线程做的所有工作,并且线程继续处理它们直到队列为空 - 然后它不会终止但是等待新的作业出现。并且只有在应用程序结束时,您才会通知线程停止等待并终止它。