1. 程式人生 > >python並發編程:多進程-隊列

python並發編程:多進程-隊列

通信 數據傳遞 消息傳遞 便是 隔離 共享 方法 port python

隊列介紹

  進程彼此之間互相隔離,要實現進程間通信(IPC),multiprocessing模塊支持兩種形式:隊列和管道,這兩種方式都是使用消息傳遞的

創建隊列的類(底層就是以管道和鎖定的方式實現)

Queue(maxsize):創建共享的進程隊列,Queue是多進程安全的隊列,可以使用Queue實現多進程之間的數據傳遞

  參數介紹

maxsize是隊列中允許最大項數,省略則無大小限制
但需要明確:
    1、隊列內存放的是消息而非大數據
    2、隊列占用的是內存空間,因而maxsize即便是無大小限制也受限於內存大小

  主要方法介紹

q.put方法用以插入數據到隊列中
q.get方法可以從隊列讀取並且刪除一個元素

  隊列的使用

from multiprocessing import Queue

q = Queue(3)

q.put(1)
q.put(2)
q.put(3)
print(q.full())     # 滿了
# q.put(4)  # 再放就阻塞住了

print(q.get())
print(q.get())
print(q.get())
print(q.empty())    # 空了
print(q.get())  # 再取就阻塞住了

  

python並發編程:多進程-隊列