Python 终止的线程无法重启
我有一个线程,它会在某个动作发生时被执行。根据程序的逻辑,这个线程在另一个实例还在运行的时候是不能被启动的。然而,当我第二次调用它时,却出现了“RuntimeError: thread already started”的错误。我还添加了一个检查,使用了Thread.is_alive()函数来查看它是否还活着,结果显示它其实已经结束了。
我到底哪里出错了呢?
如果需要,我可以提供更多细节。
3 个回答
2
你可以试着设置一下
thread._Thread__started = False
这个方法没有官方文档说明,所以使用时要小心哦!:)
7
来自Python文档的内容:
start()
这个方法是用来启动线程的活动的。每个线程对象最多只能调用一次这个方法。调用后,它会让这个对象的run()
方法在一个单独的线程中运行。
如果你从threading.Thread
这个类派生出一个新类,你可以在你的run
方法的最后加上Thread.__init__(self)
,这样你就可以再次调用start
,并且在完成后它会自动重新初始化自己。
11
线程是不能重新启动的。如果你想再次启动一个线程,你需要重新创建一个新的线程。