1. 程式人生 > >線程間通信推薦用隊列

線程間通信推薦用隊列

普通 自帶 等級 使用 獲取數據 指定 span 實現 就是

# 隊列是數據安全的,意思是自帶鎖,多線程間通信時,使用隊列是好的,不會出現同一個數據被多個線程搶占,使用其他數據類型進行通信則需要自己實現鎖功能

import queue

# 普通先進先出隊列
# q = queue.Queue()   # 沒有參數則表示隊列沒有指定深度
# q.put(1) # 如果隊列指定了深度則到了深度後,會阻塞在這裏等待隊列有空間後再向隊列中放入數據
# q.put_nowait()  # 隊列滿了也不會阻塞在這裏,但會有異常
# q.get() # 從隊列中獲取數據,無數據後悔阻塞
# q.get_nowait()  # 從隊列中獲取數據,隊列空時也不會阻塞,會報異常
# 先進後出隊列,棧 # q = queue.LifoQueue() # 創建先進後出隊列,就是棧 # q.put(1) # q.get() # 優先級隊列 q = queue.PriorityQueue() # 優先級隊列 q.put((20, a)) # 20表示優先級,值越小,優先級越高,越先被get獲取到。第二個參數為值 q.put((10, ee)) q.put((10,c)) # 同樣等級優先級的,則按照值的ascii碼優先級,同優先級下,值的ascii碼優先級越高的,越先被get到 q.put((30, cb)) print(q.get()) #
(10, ‘c‘)

線程間通信推薦用隊列