一、定时器 使用定时器去触发一些事件 例子: import threading import time def run(): print('定时器启动') timer = threading.Timer(5,run) #再启用定时器,实现循环 timer.start() if __name__ == '__main__': t1 = threading.Timer(1,function=run) #创建一个定时器 #5秒后启动线程 #方法 t1.start()
二、队列
''' queue.Queue()先入先出 queue.LifoQueue()后入先出 queue.PriorityQueue()可设置优先级 可传参数maxsize设置可存储数据的数量 queue.LifoQueue()后入先出 queue.PriorityQueue()可设置优先级 可传参数maxsize设置可存储数据的数量 Queue.qsize()获取数据的数量 Queue.full()判断队列是否满 Queue.empty()判断队列是否空 Queue.join()等待线程完成 ''' import queue q = queue.Queue(maxsize=3) #创建一个队列 最大容量为3 q.put(1)#放入数字1 q.put(2) q.put(3) # q.put(4) #放入超过最大容量的个体,程序会一直等待里边个体拿出 # q.put(4,False,timeout=3)#设置等待时间后,会等待3秒后,程序报错 print(q.queue) #打印出队列里个体 : deque([1, 2, 3]) print(q.qsize()) #打印队列里的个体数量: 3 q.get() #依次拿出队列里的一个个体 print(q.full()) #判断队列是否为满 打印为False或Ture print(q.empty()) #判断队列是否为满 打印为False或Ture print(q.get()) #打印本次拿出的个体 # q1 = queue.PriorityQueue()可设置优先级 # q1.put(2,'nihao1') # q1.put(5,'nihao2') # (优先级,放入元素) 生产者、消费者经典案例
'''生产者消费者模型''' import queue import threading import time q = queue.Queue(maxsize=10) #创建队列 def put_in(): count = 1 while True: q.put(f'红糖糍粑{count}') #放入 print(f'红糖糍粑{count}出锅啦') count += 1 time.sleep(1) #休眠一秒 def get_out(name): while True: #一直循环 print(f'{name}吃了{q.get()}') time.sleep(1) if __name__ == '__main__': p = threading.Thread(target=put_in) #创建线程,调用函数 p.start() g = threading.Thread(target=get_out,args=('qq',)) #创建线程,调用函数 #传入对象要用元组的形式 (a,b) g.start() 线程池:http://c.biancheng.net/view/2627.html
Python3 MySQL 数据库连接 – PyMySQL 驱动 | 菜鸟教程 (runoob.com)