threading.timer如何在python中工作

时间:2017-02-17 06:10:54

标签: python multithreading

我是python线程的新手。我想每n秒运行一次函数,这就是我遇到的情况:

def print_hello():
    threading.Timer(5.0, print_hello).start()
    print "hello"

print_hello()

我的问题是,当调用print_hello()时,是否会每5秒创建一个新线程?

3 个答案:

答案 0 :(得分:2)

Timer是一个主题。它是在您实例化Timer()时创建的。该线程等待给定的时间然后调用该函数。由于该函数创建了一个新的计时器,是的,它每5秒调用一次。

答案 1 :(得分:0)

代码的少量缩进有助于更好地理解这个问题。

格式化代码:

from threading import Timer

def print_hello():
    Timer(5.0,print_hello,[]).start()
    print "Hello"

print_hello()

这个代码每5秒产生一个新线程,因为你在每个新线程调用中递归调用它。

答案 2 :(得分:0)

就我而言,这是有效的

import turtle 

def hello:
        threading.Timer(2, hello()).start()

hello()

hello 函数在 Timer() 中作为参数传递时应该包含大括号。