Python定时器线程池原理详解
作者:---WeiGeH 发布时间:2022-02-10 02:09:07
标签:Python,定时,线程
这篇文章主要介绍了Python定时器线程池原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
定时器执行循环任务:
知识储备
Timer(interval, function, args=None, kwargs=None)
interval ===》 时间间隔 单位为s
function ===》 定制执行的函数
使用threading的 Timer 类
start() 为通用的开始执行方法
cancel ()为取消执行的方法
普通单次定时执行
from threading import Timer
import time
# 普通单次定时器
def handle():
print("普通单次定时器 函数被执行");
t1=Timer(interval=1,function=handle);
t1.start();
定时循环执行
from threading import Timer
import time
# 循环定时器
def loop_handle():
print("循环定时器定时器 函数被执行");
global t2;
t2=Timer(interval=1,function=loop_handle);
t2.start();
t2=Timer(interval=1,function=loop_handle);
t2.start();
time.sleep(5);# 对主线程停止5s;
t2.cancel(); # t2 在主main 线程阻塞5s t2执行5s
线程池技术
基本概念
在程序启动时就创建好若干个线程,并保存到内存中 。 当线程启动并执行完成之后,并不做销毁处理,而是等待下次再使用。
i:节约了创建进程 销毁进程的时间,大大降低进程的开销
实现
抢占式:线程池中的线程执行顺序不固定。该方式使用 ThreadPoolExecutor的 submit ()方法实现。
具体执行那个线程是随机的, 并且执行的函数也可以不一致
那个线程执行的函数出现了崩溃,不影响整个线程池的其他线程的运行
使用with 语法 进行简化操作
非抢占式:线程将按照调用的顺序执行 。 此方式使用 ThreadPoolExecutor 的 map ()方法来实现
每个线程处理的函数都是一致的,一个线程执行的函数崩溃,整体就崩溃
基本code
from concurrent.futures import ThreadPoolExecutor # 导入线程池
import time
def printName(name):
print("名字",name);
time.sleep(2);
nameList=['Tom','jirl','steam'];
# 抢占式线程池
start2=time.time();
with ThreadPoolExecutor(3) as executor:
for i in nameList:# 因为每次执行的函数不一致,所以参数要分开传递
executor.submit(printName,i);
end2=time.time();
print("2 speed:",str(end2-start2));
#非抢占式线程池
来源:https://www.cnblogs.com/dgwblog/p/11517910.html
0
投稿
猜你喜欢
- 什么是JSON http://www.json.org/json-zh.htmlJSON(Javascript Object Notatio
- 本文实例为大家分享了Python tkinter实现计算器功能的具体代码,供大家参考,具体内容如下python版本:3.5一.计算器的功能描
- append()方法追加传递obj到现有的列表。语法以下是append()方法的语法:list.append(obj)参数&nb
- 如何导入数据数据可能有各种格式,虽然常见的是HDFS,但是因为在Python爬虫中数据库用的比较多的是MongoDB,所以这里会重点说说如何
- 当我们开始精通编程语言时,我们不仅希望实现最终目标,而且希望使我们的程序高效。在这个教程中,我们将学习一些Ipython的命令,这些命令可以
- 我们在编写软件时,一般会有版本号以及生成的时间,Go编译的程序中,如何添加当时的编译时间以及版本信息?C/C++语言,非常方便,可以直接使用
- 一、概论超大型系统的特点为:1、处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB;2、系统必须提供实时响应功能,系统
- 本文实例讲述了Python中的装饰器用法。分享给大家供大家参考。具体分析如下:这里还是先由stackoverflow上面的一个问题引起吧,如
- 每当有新员工入职,人事小姐姐都要收集大量的工资卡信息,并且生成Excel文档,看到小姐姐这么辛苦,我就忍不住要去帮她了&hellip
- MySQL常用存储引擎之MyISAM特性:1、并发性与锁级别2、表损坏修复check table tablenamerepair table
- 逻辑斯蒂回归模型多分类任务上节中,我们使用逻辑斯蒂回归完成了二分类任务,针对多分类任务,我们可以采用以下措施,进行分类。我们以三分类任务为例
- 本文实例讲述了PHP实现的DES加密解密类定义与用法。分享给大家供大家参考,具体如下:今天写App接口的时候需要传递加密数据给APP端,于是
- 是建立一个数据集 前面应该先定义此数据集 dim rs as adodb.recordset 然后就可以用 set rs=server.Cr
- 由于特定需求,最近实验室需要远程连接外地的sql server 2000服务器,最开始怎么连也连不上,出现了很多问题,但是在今天上午,借用实
- 本文实例讲述了Joomla开启SEF的方法。分享给大家供大家参考,具体如下:使用SEF(search engine friendly)网址的
- 文件的介绍什么是文件?如图展示:使用文件的目的:保存数据存放在磁盘,把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一
- banner 设计会严重影响广告投放效果,在此建议相关设计人员,在设计FLASH BANNER的时候考虑到以下问题.1.
- 突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣,然后就想用python来试试写写看,结果还真玩出了点效果,思路是首先你得有一个脏话存
- 一、概述OpenCV在V4.5.3版本的contrib包中提供了一个barcode::BarcodeDetector类,用于条形码的识别。二
- 本文实例讲述了Python实现基于socket的udp传输与接收功能。分享给大家供大家参考,具体如下:udp的传输与接收windows网络调