问题描述
但是线程模块对我有用。 如何检查由模块线程(在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")
我知道“线程”模块中没有名为isAlive()的函数,还有其他选择吗?
但是没有任何理由使用“线程”模块,是吗?
1楼
除非您确实需要内部 ( 模块)的低级功能, 您确实应该使用threading
模块。它使所有内容都易于使用,并且确实带有诸如帮助 。
顺便说一句。 像在示例代码中一样重新启动线程的另一种方法是保持线程运行,但让它等待其他作业。 例如,您可能在某个地方有一个队列,该队列跟踪您希望线程执行的所有作业,并且线程一直在处理它们,直到队列为空为止,然后该队列不会终止,而是等待新的作业出现。 仅在应用程序结束时,您才发出信号以通知线程停止等待并终止它。