Python高级培训——Num5之定时器
2022/1/11 14:03:45
本文主要是介绍Python高级培训——Num5之定时器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
定时器:
循环sleeo,在循环里放入要执行的任务,然后sleep一段时间再执行
sleep是阻塞函数,theading模块中的timer是个非阻塞函数
python 定时器 - 简书 (jianshu.com)
class threading.Timer(interval, function, args=[], kwargs={})
队列:元素先进先出,进put(arg),取get(),队列也是阻塞形态
queue.Queue()先入先出
queue.LifoQueue()后入先出
queue.PriorityQueue()可设置优先级
可传参数maxsize设置可存储数据的数量
Queue.put()往队列放数据,block=False,timeout=15任一个都可以不等待,满了就报错
Queue.get()从队列取数据,block=False,timeout=15任一个都可以不等待,空了就报错
Queue.task_done()配合get使用,告诉队列本次get完成
Queue.qsize()获取数据的数量
Queue.full()判断队列是否满
Queue.empty()判断队列是否空
75-Python多线程-线程池_哔哩哔哩_bilibili
Queue.join()等待线程完成
线程池:
线程池可以提高性能,防止启动大量线程而导致系统变慢,可以更简单的创建线程,适用于突发的需要大量线程,而线程存在时间短的场景
线程池由concurrent.futures下的threadPoolExecutor提供
submit(fn,*args,**kwargs)将函数fn提交给线程池,后面是参数
map(fn,*iterables,timeout=None,chunksize=1)启动多线程,让函数fh分别使用后面的可迭代参数
shutdown(wait=true)关闭线程池
使用submit()函数提交后会返回一个future对象
cancel()可以取消该线程,如果线程正在进行,不可取消,返回false,否则取消线程,并返回true
cancelled()返回线程是否被取消
running()返回线程是否正在运行
done()返回线程是否完成,包括取消和正常完成
result(timeout=none)获取该线程的返回结果,会阻塞线程,timeout是阻塞时间
add_done_callback(fn)线程结束后执行fn函数
from datetime import datetime import time # 每n秒执行一次,循环sleep函数 def timer(n): while True: print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))#输出当时时间 time.sleep(n)#sleep一段时间再执行 timer(1)#定义一秒循环
这篇关于Python高级培训——Num5之定时器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南