如何在Python中的某个时间启动函数?

时间:2015-06-16 15:46:55

标签: python multithreading events time conditional-statements

我有一个时间戳列表,当达到这些时间戳时,我需要调用一个特定的方法。这些时间戳大约相差20毫秒。

目前我在一个单独的线程中忙着等待,但我担心CPU过载。示例:

while True:
  if myTimestamp > time.time():
    mymethod()

while myTimestamp < time.time():
   time.sleep(0.1)
mymethod()

有更有效的方法吗? 感谢

1 个答案:

答案 0 :(得分:1)

有几种方法 - 有些方法比其他方式更容易移植到不同的操作系统。

一般来说,你能做的是:

  1. 为每个任务生成一个新线程
  2. 在每个线程中,获取当前时间,并将time.sleep()用于剩余时间
  3. 这有效,但并不是非常准确。使用python附带的sched模块可以让您的生活更轻松(它基本上完成了我上面描述的内容,但可能更聪明一些)。

    如果你需要微秒精度(“硬”实时约束),python不是首选工具。