python编程(一种自定义定时器的写法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
没有合适的定时器库,自己编写python定时器code。
#!/usr/bin/pythonimport os
import sys
import time
import threading
import signalg_timer_lock = threading.Lock()
g_ticks= []
g_exit = 0def sig_process(sig, frame):global g_exitprint 'get signal'g_exit = 1def insert_ticks(delta):global g_tickscurrent = int(time.time()) + deltatick = []process_flag = 0if 0 == len(g_ticks):g_ticks.append([current, delta])else:for i in range(len(g_ticks)):if current < g_ticks[i][0] and not process_flag:process_flag = 1tick.append([current, delta])tick.append(g_ticks[i])if not process_flag:tick.append([current, delta])g_ticks = tickdef add_timer(delta):g_timer_lock.acquire()insert_ticks(delta)g_timer_lock.release()def timer_process():while not g_exit:g_timer_lock.acquire()current = int(time.time())process_num = 0while not process_num:for i in range(len(g_ticks)):if g_ticks[i][0] < current:process_num = 1breakif process_num:process_num = 0print '%d %d ' %(g_ticks[i][0], g_ticks[i][1])print 'ready to send msg to module'del g_ticks[i]else:process_num = 1g_timer_lock.release()time.sleep(1)def main():signal.signal(signal.SIGINT, sig_process)td = threading.Thread(target=timer_process)td.start()while not g_exit:add_timer(1)add_timer(3)add_timer(2)time.sleep(6)td.join()if __name__ == '__main__':main()
python编程(一种自定义定时器的写法)相关推荐
- python编程购物车_python编写购物车新写法
用另一种方式完成购物车的功能实现 #!/usr/bin/python zijin = input("请输入资金:") if zijin.isdigit(): zijin = int ...
- Dynamo之Python编程视频教学
一.背景 小伙伴们在使用dynamo时,对于pythonscript脚本的使用常常不知道如何下手,为了解决这个问题,博主做了dynamo中python开发一系列教学视频(包括python学习与如何在p ...
- python困境_学习 Python 编程的三种困境
之前我写过两篇关于测试人员要不要学编程的文章,有很多朋友留言给我说,我也很想学呀,可是我办不到呀. 前两篇文章链接如下,没看过的可以尽快回顾下: <做软件测试到底要不要学编程?> < ...
- python是一种跨平台开源免费的_PyGaze:一个易于使用的开源的、跨平台的眼动追踪实验编程工具箱...
PyGaze是一个跨平台的创建眼动实验的开源软件包,支持Eyelink.SMI.Tobii.EyeTribe 等型号的眼动仪,如果你不想学习每个品牌眼动仪自家的编程软件,PyGaze是不错的选择.Py ...
- python是一种动态语言、这意味着_【python编程的优点是什么?难怪选择python的人越来越多了】- 环球网校...
[摘要]Python是一种动态解释的.强类型定义语言:编写它时不需要定义变量类型.python判断值的类型的方法是什么,那么python编程的优点是什么?难怪选择python的人越来越多了,所以你知道 ...
- python编程中常用的12种基础知识总结
python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...
- python的知识点运用_程序猿在Python编程中不得不使用的十二种基础知识
Python编程中常用的12种基础知识,其中肯定有你不会的! 人生苦短,我用Python 1.正则表达式替换 目标: 将字符串line中的 overview.gif 替换成其他字符串. 人生苦短,我用 ...
- python编程制作_一种Python编程创作平台的制作方法
本发明涉及在线浏览器技术领域,特别涉及一种Python编程创作平台. 背景技术: 目前项目整体使用javascript+html+css实现,用户界面编写上使用react框架.具体实现上是将pytho ...
- python编程首选_Java程序员值得探索的五种新编程语言,Python是首选?
我们程序员就要常换常新,老用一种语言是会厌倦的.学什么语言能我们精进不已?一起来看本文. 作为程序员,要想探索新事物.学习新的编程语言会为自己解决问题提供更多的视角. 那么,Java开发人员应该探索哪 ...
最新文章
- windows域控制器恢复
- 使用 Navicat Premium 将 sql server 的数据库迁移到 mysql 的数据库中
- python - socket模块1
- F5基于证书认证的客户端登录
- 最大堆的Java实现
- 作者:黄媛洁(1992-),女,食品安全大数据技术北京市重点实验室、北京工商大学计算机与信息工程学院硕士生...
- java mysql 常见框架_Java岗面试重点:Java+JVM+MySQL+框架+算法,金九银十涨薪全靠它...
- css如何让a标签,根据输入的内容长度调整宽度,宽度自适应,那位大仙帮帮忙...
- Android学习笔记:利用httpclient和AsyncTask 发起网络http post操作
- python断点_Python断点()
- php成长之路--1.composer下载依赖
- 如何在苹果Mac上使用 Siri?
- python3之环境搭建以及基础语法
- NBU备份软件实施过程的注意事项
- 经典数据结构视频教程下载 (清华大学 严蔚敏)
- 幅频特性曲线protues_求助如何用MULTISIM画出幅频特性曲线?如何使用波特图仪器?...
- google开发者大会的倒计时动画,没有用Flash
- SQLite数据库知识
- RuntimeError: weight tensor should be defined either for all or no classes
- Android蓝牙4.0之传输速率的提升