在python中创建一个计时器线程

时间:2017-07-05 12:23:40

标签: python multithreading python-2.7

from threading import Thread, current_thread

def hello():
    print("hello, world")
    t = threading.Timer(3.0, hello)
    t.start()
    print current_thread().name 

hello()
  

这将每3秒定期创建一个新线程。我想知道创建的线程是否过期,然后再次创建新线程。我可以看到线程名称为" Thread-1"," Thread-2"," Thread-3"等等。创建。我想知道" Thread-1"最终将退出,然后创建一个新的线程,即"线程-2"或者仍然是" Thread-1"会保持活跃。请帮助。

1 个答案:

答案 0 :(得分:1)

您的主题完成后会退出。事实上,由于您的print命令是hello()中的最后一行,这意味着一旦线程显示其名称就会退出。您可以使用threading.enumerate()显示所有正在运行的线程:

from threading import Thread, current_thread, Timer, enumerate

def hello():
    print("hello, world")
    t = Timer(3.0, hello)
    t.start()
    print enumerate()
    print current_thread().name, "exiting" 

hello()

唯一的例外是主线程,它不会退出但在程序退出之前一直处于停止状态,这在此代码中永远不会发生。所有其他线程完成他们的工作,然后退出。

这回答了你的问题吗?

哈努哈利