網絡編程之併發編程——隊列

網絡編程之併發編程——隊列

隊列介紹

進程彼此之間互相隔離,要實現進程間通訊(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()) #再取就阻塞住了
相關文章
相關標籤/搜索