python高级培训(5)

定时器

t1=threading.Timer(5,function=run)
t1.start()

5秒钟后运行该线程
例:闹钟

import threading
import time


def run():
    print('open')
    print(threading.current_thread())
    t2 = threading.Timer(5, function=run)
    t2.start()

if __name__ == '__main__':

    t1=threading.Timer(5,function=run)
    t1.start()
    while True:
        time.sleep(10)
        print('主线程')

队列

queue.Queue()先入先出
queue.LifoQueue()后入先出
eue.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 ()判断队列是否空
Queue.join()等待线程完成

线程池

线程池可以提高性能,防止启动大量线程而导致系统变慢,可以更简单的创建线程,适用于突发的需要大量线程,而线程存在时间短的场景

线程池由concurrent.futures下的ThreadPoolExecutor提供,submit(fn, *args,**kwargs)将函数fn提交给线程池,后面是参数
map(fn,*iterables,timeout=None,chunksize=1)启动多线程,让函数fn分别使用后面的可迭代参数shutdown(wait=True)关闭线程池
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值