佇列queue模組
"""
管道:subprocess
stdin stdout stderr
佇列:管道+鎖
佇列:先進先出
堆疊:先進後出
"""from multiprocessing import queue
# 建立乙個佇列
q = queue(5) # 括號內可以傳數字 標示生成的佇列最大可以同時存放的資料量
# 往佇列中存資料
q.put(111)
q.put(222)
q.put(333)
# print(q.full()) # 判斷當前佇列是否滿了
# print(q.empty()) # 判斷當前佇列是否空了
q.put(444)
q.put(555)
# print(q.full()) # 判斷當前佇列是否滿了
# q.put(666) # 當佇列資料放滿了之後 如果還有資料要放程式會阻塞 直到有位置讓出來 不會報錯
"""訪問資料 存是為了更好的取
千方百計的存、簡單快捷的取
同在乙個屋簷下
差距為何那麼大
"""# 去佇列中取資料
v1 = q.get()
v2 = q.get()
v3 = q.get()
v4 = q.get()
v5 = q.get()
# print(q.empty())
# v6 = q.get_nowait() # 沒有資料直接報錯queue.empty
# v6 = q.get(timeout=3) # 沒有資料之後原地等待三秒之後再報錯 queue.empty
try:
v6 = q.get(timeout=3)
print(v6)
except exception as e:
print('一滴都沒有了!')
# # v6 = q.get() # 佇列中如果已經沒有資料的話 get方法會原地阻塞
# print(v1, v2, v3, v4, v5, v6)
"""q.full()
q.empty()
q.get_nowait()
在多程序的情況下是不精確
"""
鳴謝:jason老師 erlang 佇列(queue)模組
queue模組部分api說明 新建乙個佇列,返回兩個為空的列表組成的元組 是否是佇列,通過判斷元組是否由兩個列表組成 是否為空佇列,通過判斷兩個列表是否為空 佇列長度,通過獲取兩個列表長度相加實現 佇列轉為列表,由out列表拼接反轉後的in列表實現 列表轉為佇列,呼叫了f2r f2r f2r f f...
Python 原始碼分析 queue 佇列模組
起步 queue 模組提供適用於多執行緒程式設計的先進先出 fifo 資料結構。因為它是執行緒安全的,所以多個執行緒很輕鬆地使用同乙個例項。原始碼分析 先從初始化的函式來看 從這初始化函式能得到哪些資訊呢?首先,佇列是可以設定其容量大小的,並且具體的底層存放元素的它使用了collections.de...
Python程式設計 queue佇列
import queue q1 queue.queue q1.put 1 q1.put 2 q1.put 3 print q1.get print q1.get print q1.get 1 2 3import queue q2 queue.lifoqueue q2.put 1 q2.put 2 q...