Day39.队列介绍
1.队列介绍_队列中如果没有数据的话,get方法会原地阻塞,程序会卡住
2.队列介绍_.get_nowait()方法, 队列中没有数据直接报错
3.队列介绍_.get(3)没有数据后等待3秒之后报错
4.队列介绍_.full()判断队列是否满了和.empty()判断队列是否空了
5.队列介绍_使用捕获异常提示队列没有位置的情况
'''进程间通信''' # todo 队列Queue模块 ''' 队列:先进先出 堆栈:先进后出 ''' from multiprocessing import Queue # todo 创建一个队列 q = Queue(5) # todo 括号内可以传数字,表示生成的队列最大可以同时存放的数据量 # todo 往队列中存数据 q.put(111) q.put(222) q.put(333) # print('判断当前队列是否满了'.center(40, '-')) # print(q.full()) # todo 判断当前队列是否满了 # print('判断当前队列是否空了'.center(40, '-')) # print(q.empty()) # todo 判断当前队列是否空了 q.put(444) q.put(555) # print('判断当前队列是否满了'.center(40, '-')) # print(q.full()) # todo 判断当前队列是否满了 # # q.put(666) # todo 当队列数据放满了以后,如果还有数据在程序中会阻塞,知道有位置让出来,不会报错 # print('判断当前队列是否空了'.center(40, '-')) # print(q.empty()) # todo 判断当前队列是否空了 ''' 存取数据,存是为了更好的取 千方百计的存、简单快捷的取 ''' # todo 去队列中读取数据 v1 = q.get() v2 = q.get() v3 = q.get() v4 = q.get() v5 = q.get() # v6 = q.get() # todo 队列中如果没有数据的话,get方法会原地阻塞,程序会卡住 # v6 = q.get_nowait() # todo .get_nowait()方法, 队列中没有数据直接报错 # print('loading3s...'.center(40, '-')) # v6 = q.get(timeout=3) # todo .get(3) 没有数据后原地等待3秒,之后在报错 try: v6 = q.get(timeout=3) print(v6) except: print('队列没位置'.center(40, '-')) ''' q.full() q.empty() q.get_nowait() 在多进程的情况下不精确 '''