如果没有调用方法 thread.stop() 或 thread.join

下面是一段代码:


def display():

  threading.Timer(1,display).start()

  print("Number")

display()

对于这段代码,我想问以下几点:

  1. 每一秒都会产生一个新线程,对吗?

  2. 每一秒最后一个线程都会死亡,因为函数完全执行,所以旧线程死亡,对吗?如果不是那么发生了什么?


慕村225694
浏览 177回答 1
1回答

慕桂英4014372

Timer派生自Thread,所以是的:启动了许多线程。无论您是否调用join,当它们被调用的函数返回(或抛出)时,线程都会死亡,但是在您这样做之前,为它们保留的资源可能会或可能不会被回收。(请注意,线程是常见垃圾收集方案的根源,因此依赖删除对Thread对象的引用是不明智的。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python