想象一下以下类:为什么重新启动线程时需要重新创建实例?
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
,这不太实际。我必须读取旧的Object
的当前值,创建一个新的值,并使用旧值设置新对象中的参数。第二个问题:能否以更智能,更简单的方式完成?