python 定时器 队列(5)

定时器

  与线程一样,通过调用 start() 方法启动定时器。而 cancel() 方法可以停止计时器(在计时结束前),定时器在执行其操作之前等待的时间间隔可能与用户指定的时间间隔不完全相同。

threading.Timer(定时时间, function=函数, args=("传参",),kwargs={'':''})

注:args是传递的参数为元组,kwargs关键字参数为字典

       让定时器重复工作可以在定时器函数内部重新调用定时器,通过cancel()停止

import threading

def run(i):
    print(f'重复{i}次')
    i+=1
    time_2 = threading.Timer(1, function=run, args=(i,))#循环嵌套
    time_2.start()
    if i==5:
        time_2.cancel()#停止定时器,仅当计时器仍处于等待状态时有效。

# time_1=threading.Timer(定时时间, function=函数, args=("传参",))
time_1=threading.Timer(1, function=run, args=(1,))
time_1.start()#启动

线程优先级队列( Queue)

Queue 模块中的常用方法:

import queue
q=queue.Queue(maxsize=2)#先入先出
Q1=queue.LifoQueue()#后入先出
q3=queue.SimpleQueue()#自定义优先级
q3.put((1,'优先级为1'))#放入

线程池

​​​​​

导入 from concurrent.futures import ThreadPoolExecutor

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBALeWTiOWTiOWTiOWTiC0=,size_20,color_FFFFFF,t_70,g_se,x_1675-Python多线程-线程池_哔哩哔哩_bilibili

from  concurrent.futures import ThreadPoolExecutor
import time

def run(x):
    print(f'线程{x}')
    time.sleep(2)
    return x * 10

def calback(future):
    print(future.done())
if __name__ == '__main__':
    with ThreadPoolExecutor(max_workers=2) as pool:
        future1 = pool.submit(run, 1)
        future2 = pool.submit(run, 2)
        future3 = pool.submit(run, 3)
        future1.add_done_callback(calback)  # 不阻塞主线程
        time.sleep(3)
        future3.add_done_callback(calback)
        print('线程完成')
        result = pool.map(run, [7, 8, 9])

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值