Python实现延时执行的两种方法:sched与timer详解

听雨眠
听雨眠
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍Python中实现函数延时执行的两类常用方法:sched调度器与threading.Timer。通过对比输出结果,分析两者在同步阻塞与异步非阻塞执行上的差异,帮助开发者根据实际需求选择合适的延时机制。

本文通过具体示例展示Python中实现延时操作的几种方式,供读者参考学习。

在软件开发过程中,经常需要让某个函数在指定时间后执行,以实现特定的业务逻辑或效果。为此,我们需要借助特定的机制来实现函数的延后执行。本文将简要介绍两种实现该效果的常见方法。

方法一:使用sched模块

import sched,time
def func(a):
  print time.time(),"Hello Sched!",a
print time.time()
s = sched.scheduler(time.time,time.sleep)
# 2为延后时间,1为优先级,func为函数名,("test1",)为函数参数
s.enter(2,1,func,("test1",))
s.enter(2,0,func,("test2",))
s.run()
print time.time()

运行上述代码后的输出结果如下所示:

1519443179.4 1519443181.4 Hello Sched! test2 1519443181.4 Hello Sched! test1 1519443181.4

观察输出结果可以发现,函数确实延迟了2秒执行。此外,test2比test1先被执行,这是因为两者设定的延迟时间均为2秒,但test2被赋予了更高的优先级(值为1,高于test1的0),因此优先执行。

方法二:使用timer模块

import threading,time
def func(a):
  print time.time(),"Hello Timer!",a
print time.time()
s = threading.Timer(2,func,("test",))
s.start()
print time.time()

该方法的输出结果如下:

1519443055.69 1519443055.69 1519443057.69 Hello Timer! test

从输出结果可以看出,函数同样实现了延迟2秒执行的效果。

对比上述两种方式的输出结果可以发现,timer模块采用的是异步执行方式,它不会阻塞后续代码的执行;而sched模块则是同步执行的,它会等待所有调度函数执行完毕后,才会继续执行后续代码。

如果您对Python的其他技巧感兴趣,欢迎查阅本站相关专题,包括《Python日期与时间操作技巧总结》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》以及《Python入门与进阶经典教程》。

希望本文的介绍能对您的Python编程实践有所帮助。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表