【发布时间】:2019-12-05 03:06:50
【问题描述】:
这更多是出于理论上的好奇心,而不是我遇到的实际问题。
假设您想定期运行一些代码,在 CPU 消耗方面,使用 Timer 与使用线程 + time.sleep 的优缺点是什么?
以下两种方法的作用相同。我知道 Thread 方法不完全是一秒的间隔,而是在每次执行后增加一个延迟,如果 task_function 操作需要很长时间,这可能很重要。我也知道有很多其他方法可以解决这个问题,但让我们关注线程包。
计时器方法
def task_function():
print(time.time())
def task():
task_function()
threading.Timer(1,task).start()
task()
线程方法
def task_function():
while True:
print(time.time())
time.sleep(1)
threading.Thread(target=task_function).start()
我在某处读到,启动一个线程非常耗费资源。所以我想知道,如果你有一些你想每 0.1 秒运行一次的代码,那么 Timer 方法是否不是次优的,因为必须如此频繁地启动一个新线程?
【问题讨论】:
标签: python python-3.x multithreading python-multithreading