【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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编程(一种自定义定时器的写法)相关推荐

  1. python编程购物车_python编写购物车新写法

    用另一种方式完成购物车的功能实现 #!/usr/bin/python zijin = input("请输入资金:") if zijin.isdigit(): zijin = int ...

  2. Dynamo之Python编程视频教学

    一.背景 小伙伴们在使用dynamo时,对于pythonscript脚本的使用常常不知道如何下手,为了解决这个问题,博主做了dynamo中python开发一系列教学视频(包括python学习与如何在p ...

  3. python困境_学习 Python 编程的三种困境

    之前我写过两篇关于测试人员要不要学编程的文章,有很多朋友留言给我说,我也很想学呀,可是我办不到呀. 前两篇文章链接如下,没看过的可以尽快回顾下: <做软件测试到底要不要学编程?> < ...

  4. python是一种跨平台开源免费的_PyGaze:一个易于使用的开源的、跨平台的眼动追踪实验编程工具箱...

    PyGaze是一个跨平台的创建眼动实验的开源软件包,支持Eyelink.SMI.Tobii.EyeTribe 等型号的眼动仪,如果你不想学习每个品牌眼动仪自家的编程软件,PyGaze是不错的选择.Py ...

  5. python是一种动态语言、这意味着_【python编程的优点是什么?难怪选择python的人越来越多了】- 环球网校...

    [摘要]Python是一种动态解释的.强类型定义语言:编写它时不需要定义变量类型.python判断值的类型的方法是什么,那么python编程的优点是什么?难怪选择python的人越来越多了,所以你知道 ...

  6. python编程中常用的12种基础知识总结

    python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  7. python的知识点运用_程序猿在Python编程中不得不使用的十二种基础知识

    Python编程中常用的12种基础知识,其中肯定有你不会的! 人生苦短,我用Python 1.正则表达式替换 目标: 将字符串line中的 overview.gif 替换成其他字符串. 人生苦短,我用 ...

  8. python编程制作_一种Python编程创作平台的制作方法

    本发明涉及在线浏览器技术领域,特别涉及一种Python编程创作平台. 背景技术: 目前项目整体使用javascript+html+css实现,用户界面编写上使用react框架.具体实现上是将pytho ...

  9. python编程首选_Java程序员值得探索的五种新编程语言,Python是首选?

    我们程序员就要常换常新,老用一种语言是会厌倦的.学什么语言能我们精进不已?一起来看本文. 作为程序员,要想探索新事物.学习新的编程语言会为自己解决问题提供更多的视角. 那么,Java开发人员应该探索哪 ...

最新文章

  1. windows域控制器恢复
  2. 使用 Navicat Premium 将 sql server 的数据库迁移到 mysql 的数据库中
  3. python - socket模块1
  4. F5基于证书认证的客户端登录
  5. 最大堆的Java实现
  6. 作者:黄媛洁(1992-),女,食品安全大数据技术北京市重点实验室、北京工商大学计算机与信息工程学院硕士生...
  7. java mysql 常见框架_Java岗面试重点:Java+JVM+MySQL+框架+算法,金九银十涨薪全靠它...
  8. css如何让a标签,根据输入的内容长度调整宽度,宽度自适应,那位大仙帮帮忙...
  9. Android学习笔记:利用httpclient和AsyncTask 发起网络http post操作
  10. python断点_Python断点()
  11. php成长之路--1.composer下载依赖
  12. 如何在苹果Mac上使用 Siri?
  13. python3之环境搭建以及基础语法
  14. NBU备份软件实施过程的注意事项
  15. 经典数据结构视频教程下载 (清华大学 严蔚敏)
  16. 幅频特性曲线protues_求助如何用MULTISIM画出幅频特性曲线?如何使用波特图仪器?...
  17. google开发者大会的倒计时动画,没有用Flash
  18. SQLite数据库知识
  19. RuntimeError: weight tensor should be defined either for all or no classes
  20. Android蓝牙4.0之传输速率的提升

热门文章

  1. 51Nod:1268 和为K的组合
  2. Uber 宣布将香港最低打车费用上涨 80%, 最低 45 港币
  3. 层层递进——宽度优先搜索(BFS)
  4. redis-cli批量删除时的坑
  5. weblogic故障报错
  6. Android开发,你应该知道的
  7. 路飞的11大团队建设之道
  8. C# WinForm WebBrowser (三) 编辑模式
  9. 数字证书注册审批机构(RA)
  10. 《C语言从入门到精通》pdf