進程彼此之間互相隔離,要實現進程間通訊(IPC),multiprocessing模塊支持兩種形式:隊列和管道,這兩種方式都時使用消息傳遞的。python
建立隊列的類(底層就是以管道和鎖定的方式實現的):編程
Queue([maxsize]):建立共享的進程隊列,Queue是多進程安全的隊列,能夠使用Queue實現多進程之間的數據傳遞。
參數介紹:安全
maxsize是隊列中容許最大項數,省略則無大小限制。 但須要明確: 一、隊列內存放的是消息而非大數據。 二、隊列佔用的是內存空間,於是maxsize即使是無大小限制也受限於內存大小。
主要方法介紹:網絡
q.put方法用以插入數據到隊列中。 q.get方法能夠從隊列讀取而且刪除一個元素。
隊列的使用:併發
from multiprocessing import Process,Queue q=Queue(3) #put ,get ,put_nowait,get_nowait,full,empty 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()) #再取就阻塞住了