併發編程-進~線程-06不一樣隊列Queue

同一個進程下的多個線程原本就是數據共享 爲何還要用隊列python

由於隊列是管道+鎖 使用隊列你就不須要本身手動操做鎖的問題線程

由於鎖操做的很差極容易產生死鎖現象code

一丶queue.Queue(maxsize=0)

先進先出隊列

queue隊列 :使用import queue,用法與進程Queue同樣進程

q = queue.Queue()
q.put('hahha')
print(q.get())

二丶queue.LifoQueue(maxsize=0)

last in fisrt out:後進先出 堆棧

import queue

q=queue.LifoQueue()
q.put('first')
q.put('second')
q.put('third')

print(q.get())
print(q.get())
print(q.get())
'''
結果(後進先出):
third
second
first
'''

三丶queue.PriorityQueue(maxsize=0)

儲數據時可設置優先級的隊列

import queue

q=queue.PriorityQueue()
#put進入一個元組,元組的第一個元素是優先級(一般是數字,也能夠是非數字之間的比較),數字越小優先級越高
q.put((20,'a'))
q.put((10,'b'))
q.put((30,'c'))

print(q.get())
print(q.get())
print(q.get())
'''
結果(數字越小優先級越高,優先級高的優先出隊):
(10, 'b')
(20, 'a')
(30, 'c')
'''
相關文章
相關標籤/搜索