我是python线程的新手。我想每n秒运行一次函数,这就是我遇到的情况:
def print_hello():
threading.Timer(5.0, print_hello).start()
print "hello"
print_hello()
我的问题是,当调用print_hello()
时,是否会每5秒创建一个新线程?
答案 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() 中作为参数传递时应该包含大括号。