Python定时器线程池原理详解

 更新时间:2020年02月26日 11:04:06   作者:---WeiGeH  
这篇文章主要介绍了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));
#非抢占式线程池

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 深入解析Python中的变量和赋值运算符

    深入解析Python中的变量和赋值运算符

    这篇文章主要介绍了深入解析Python中的变量和赋值运算符,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • Python使用unicodedata实现字符串标准化

    Python使用unicodedata实现字符串标准化

    这篇文章主要来和大家聊一聊 Python 的一个内置模块:unicodedata,它是专门用来处理 unicode 字符串的,下面就一起来看看它的用法吧
    2023-06-06
  • Python操作mongodb的9个步骤

    Python操作mongodb的9个步骤

    本篇文章给大家详细分享了Python操作mongodb的详细步骤以及实例代码,有需要的朋友参考学习下吧。
    2018-06-06
  • python 正则式 概述及常用字符

    python 正则式 概述及常用字符

    python 正则,刚开始需要注意的他的正则的独特的地方。不同语言的正则稍有不同。
    2009-05-05
  • Python进程通信之匿名管道实例讲解

    Python进程通信之匿名管道实例讲解

    这篇文章主要介绍了Python进程通信之匿名管道实例讲解,本文直接给出代码实例,代码中包含详细注释,需要的朋友可以参考下
    2015-04-04
  • PyTorch中self.layers的使用小结

    PyTorch中self.layers的使用小结

    self.layers 是一个用于存储网络层的属性,本文主要介绍了PyTorch中self.layers的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • Python使用sqlalchemy实现连接数据库的帮助类

    Python使用sqlalchemy实现连接数据库的帮助类

    这篇文章主要为大家详细介绍了Python如何使用sqlalchemy实现连接数据库的帮助类,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考下
    2024-02-02
  • Python实现词云图词频统计

    Python实现词云图词频统计

    这篇文章主要为大家详细介绍了Python数据分析中的词频统计和词云图可视化,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
    2022-12-12
  • Django JWT Token RestfulAPI用户认证详解

    Django JWT Token RestfulAPI用户认证详解

    这篇文章主要介绍了Django JWT Token RestfulAPI用户认证详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 简单使用Python自动生成文章

    简单使用Python自动生成文章

    本文其实是为了应付某些检查,应逼出来的东西,没什么太大的技术含量,想想还是有些思路在里面就拿出来分享给大家了。
    2014-12-12

最新评论