6

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

我究竟做错了什么?

我可以根据需要提供更多详细信息。

4

3 回答 3

11

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

于 2010-05-12T21:01:10.703 回答
7

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

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

于 2012-09-08T11:32:10.093 回答
2

你可以试试设置

thread._Thread__started = False

它没有正式记录,所以使用它需要您自担风险!:)

于 2010-05-12T21:49:07.860 回答