2022 Python寒假级高培训 第五次 笔记

一、定时器 使用定时器去触发一些事件
例子:
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

MySQL Workbench使用图文教程 - 简书 (jianshu.com)

【人工智能-Python连接MySQL】Mysql、pymysql数据库基础+python操作数据库详解!(附课件源码资料!)_哔哩哔哩_bilibili

Python3 MySQL 数据库连接 – PyMySQL 驱动 | 菜鸟教程 (runoob.com)

上一篇:10、CountDownLatch、CyclicBarrier


下一篇:Python queue模块源码分析(第一篇:queue模块介绍)