Python开发【笔记】:单线程下执行多个定时器

单线程多定时器

  前言:公司业务需求,实例当中大量需要启动定时器的操作;大家都知道python中的定时器用的是threading.Timer,每当启动一个定时器时,程序内部起了一个线程,定时器触发执行结束后,线程自动销毁;这里就涉及到一个问题,如果同时有大量启动定时器的需求时,内部线程过多,程序肯定就崩了,有没有启一个线程就能完成定时器的操作呢?网上查了一些资料,还没有看到能解决目前问题的现成代码,不如自己搞一个试试

时间: 2024-09-28 22:59:03

Python开发【笔记】:单线程下执行多个定时器的相关文章

python学习笔记-Day8 下 (特殊方法、iter方法、super方法、有序字典实现、python单例模式)

使用特殊方法实现字典 # 使用像字典 dic['xx'] 带中括号的类使用 # 简要介绍 class Foo: # ① 对象[xx] 调用的方法 def __getitem__(self, item): return 'getitem' # ② 对象[xx] = xxx 调用的方法 def __setitem__(self, key, value): return 'setitem' # ③ del 对象[xx] 调用的方法 def __delitem__(self, key): return

Python学习笔记-字典(下)

同列表和字符串一样,字典也有方法. clear 清空字典中的所有项. 我们可以把空字典赋给某一字典来清空它当中的项.也可以使用clear方法彻底清空字典. x= {} y=x x['age']='25' x['gender']='male' print x  x.clear() print x  print y  {'gender': 'male', 'age': '25'} {} {} 如果将 x.clear 改为 x={},则结果变为 {'gender': 'male', 'age': '2

Python 学习笔记 - SQLAlchemy(下)

继续上一篇SQLAlchemy的学习之旅. 多对多表的创建 表Host和表HostUser通过表HostToHostUser关联在一起 from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index,Table

nginx开发笔记_Filter模块执行顺序

Filter模块执行顺序 Filter模块的执行顺序是在执行configure文件时决定的,configure文件执行完成后生成objs/ngx_modules.c,文件中定义了一个数组ngx_module_t *ngx_modules[],数组的顺序就是模块执行顺序的逆序. 一般而言,在模块的config文件中配置ngx_module_type为HTTP_FILTER后生成的默认执行顺序在ngx_http_copy_filter_module之后. 一个典型的ngx_module_t *ngx

python开发线程:死锁和递归锁&信号量&定时器&线程queue&事件evevt

一 死锁现象与递归锁 进程也有死锁与递归锁,在进程那里忘记说了,放到这里一切说了额 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 from threading import Thread,Lock import time mutexA=Lock() mutexB=Lock() class MyThread(Thread):

Python开发的3种命令执行方法

在python开发中,我们常常需要执行命令,修改相关信息.那对于初学者来说,python中如何执行命令呢?今天,小编就为大家分享3种python命令执行的方法. 1. 使用os.system("cmd") 在python中,使用os.system("cmd")的最大特点是,其执行时程序会打出cmd在linux上执行的信息. import os os.system("ls") 2. 使用Popen模块产生新的process Popen是现在pyth

Python学习笔记-模块介绍(二)-模块导入和执行

之前的一篇博文介绍了python中模块的概念和基本使用方法,模块作为python语言中的基本单元,可以用来编写公用库函数或对象以便重复使用.同时模块还可以作为独立文件进行运行,之前也已经提到,只要是导入了模块文件,那么PVM就会依次执行模块文件中的所有语句.本篇主要介绍模块使用的一些进阶,首先定义一个模块module_2.py,内容如下: # -*- encoding:utf-8 -*-'''module_2.py模块的内容''' print(__name__) def sum(a,b):ret

《Python入门》Linux 下 Python Web开发环境搭建笔记

之前写过 Windows 7下Python Web开发环境搭建笔记,今天写一下在Linux系统下搭建Python Web的开发测试环境. 我使用的系统是:ubuntu 14.04 server,根据个人经验,CentOS 6.5 下也适用. 关于Python的版本 进入Python的网站,鼠标移到导航条上的下载,我们会发现提供两下主版本的下载链接! 这两个之间存在什么差别呢? 个人理解,2.7.x的版本为更加稳定的版本,而3.x的版本则是比较前卫的版本,包含了很多新功能新特性之类的: 但如果想要

Python学习笔记(二)Pytho解释器和程序开发、执行过程

解释器是一种让其他程序运行起来的程序,是用户编写的代码与计算机硬件间的软件从逻辑层,虚拟化技术的一种.Python可以被当做一种解释器软件包,Python代码必须在解释器中运行,因此机器上安装Python的最小组件是-解释器和支持的库.本文只针对Windows平台,将Python加入到环境变量path中,如"C:\Python34",Python版本为3.4,下同. 1,程序编写 Python程序编写支持交互式和执行文件两种,前者就是在命令行键入指令.回车立刻得到执行效果,后者则是先写