队列----------------多线程利器

 

先进先出模式

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('---------')

 

posted @ 2018-05-04 18:38  阜阳小全  阅读(113)  评论(0编辑  收藏  举报