队列----------------多线程利器
先进先出模式
import queue #线程队列 q = queue.Queue() #先进先出,先存进的数据,就先被取出来。如果()内有数字,如5,意思是q内可以放的数据数量 q.put(12) q.put('hello') q.put({'name':'doudou'}) q.put(34,False) #意思是,如果队列已经满了。put不进去,会返回 print(q.qsize()) #队列里面具体的值 print(q.empty()) #是否为空 print(q.full()) #是否为满的状态 while 1: data = q.get(block = False) #当队列被取完后,如果还继续取的话,会返回 print(data) print('---------')
先进后出模式
import queue q = queue.LifoQueue() q.put(12) q.put('hello') q.put({'name':'doudou'}) while 1: data = q.get(block=False) # 当队列被取完后,如果还继续取的话,会返回 print(data) print('---------')
优先级模式
import queue q = queue.PriorityQueue() q.put([3,12]) #列表里面第一个数字越小,优先级越高 q.put([2,'hello']) q.put([4,{'name':'doudu'}]) while 1: data = q.get() # 当队列被取完后,如果还继续取的话,会返回 print(data) print('---------')