Python终止线程无法重启

Mel*_*aye 6 python multithreading runtime-error

我有一个线程,当某些动作发生时执行.鉴于程序的逻辑,线程不可能在其另一个实例仍在运行时启动.然而,当我第二次调用它时,我得到一个"RuntimeError:thread already started"错误.我添加了一个检查,看看它是否真的使用Thread.is_alive()函数,它实际上已经死了.

我究竟做错了什么?

我可以根据需要提供更多细节.

Yan*_*min 11

线程无法重新启动.您必须重新创建线程才能再次启动它.


GHH*_*HHT 6

Python文档: start() 启动线程的活动.每个线程对象最多只能调用一次.它安排run()在单独的控制线程中调用对象的方法.

如果你从threading.Thread派生一个类,你可以Thread.__init__(self)在run方法的末尾添加一个,你将能够再次调用start,并在完成后自动重新初始化.