gpt4 book ai didi

python - 如何在 Python 中精确给定的时间点调用函数?

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:55 24 4
gpt4 key购买 nike

如何在 Python 中精确调用某个时间点的函数?

例如:

import time
def foo():
print time.time()

start_time = time.time()
expected_time_to_run_foo = start_time + 12.3456
#invoke foo

如何让函数foo打印给定值expected_time_to_run_foo

P.S.:我不确定 time.sleep() 是否有效。我需要更高的精度。

最佳答案

内置的 sched 模块可让您安排 future 的事件。 (这里的所有代码都是 Python 3)。

import sched
import time

def print_something(x):
print(x)

s = sched.scheduler()

s.enter(1, 0, print_something, ['first'])
s.enter(2, 0, print_something, ['second'])
s.run()

您可以提供自己的函数来获取当前时间并等待到 future 的指定时间。默认值是 time.monotonic(time.time 的调整版本)和 time.sleep。

使用忙等待可以略微提高准确性,如下所示:

import sched
import time

def print_something(x):
print(x)

def busy_wait(target):
while time.monotonic() < target:
pass

s = sched.scheduler(delayfunc=busy_wait)

s.enter(1, 0, print_something, ['first'])
s.enter(2, 0, print_something, ['second'])
s.run()

但是,实际上,桌面操作系统中有太多意外延迟的来源,如果您的时间限制如此严格,那么如果没有实时操作系统,您将永远无法获得可接受的结果。

关于python - 如何在 Python 中精确给定的时间点调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16774003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com