想象以下类:
Class Object(threading.Thread):
# some initialisation blabla
def run(self):
while True:
# do something
sleep(1)
class Checker():
def check_if_thread_is_alive(self):
o = Object()
o.start()
while True:
if not o.is_alive():
o.start()
我想重新启动线程以防它死了。这行不通。因为线程只能启动一次。第一个问题。为什么是这样?
据我所知,我必须重新创建每个实例Object
并调用start()
以再次启动线程。在复杂Object
的情况下,这不是很实用。我必须读取 old 的当前值Object
,创建一个新值并使用旧值设置新对象中的参数。第二个问题:这可以以更智能、更简单的方式完成吗?