7 2 6 併發多執行緒 佇列

2022-05-17 04:07:15 字數 893 閱讀 7670

程序彼此之間互相隔離,要實現程序間通訊(ipc),multiprocessing模組支援兩種形式:佇列和管道,這兩種方式都是使用訊息傳遞的

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

queue([maxsize]):建立共享的程序佇列,queue是多程序安全的佇列,可以使用queue實現多程序之間的資料傳遞。
引數介紹:

maxsize是佇列中允許最大項數,省略則無大小限制。

但需要明確:

1、佇列內存放的是訊息而非大資料

2、佇列占用的是記憶體空間,因而maxsize即便是無大小限制也受限於記憶體大小

主要方法介紹:

q.put方法用以插入資料到佇列中。

q.get方法可以從佇列讀取並且刪除乙個元素。

from multiprocessing import

queue

q = queue(3) # 佇列最大長度為3

q.put(

"hello")

q.put()

q.put([1,2,3])

#q.put(1) # 在放就阻塞了,因為佇列已經滿了

print(q.full()) #

檢視佇列是否滿了(滿了就true)

for i in range(3):

print

(q.get())

print(q.empty()) #

檢視佇列是否空了(空了就true)

print(q.empty()) #

在取就阻塞了因為,佇列沒有資料,所以就阻塞

多執行緒併發佇列實現

2.使用 wait notify 實現乙個佇列,佇列有2個方法,add 和 get add方法往佇列中新增元素,get方法往佇列中獲得元素。佇列必須是執行緒安全的。如果get執行時,隊列為空,執行緒必須阻塞等待,直到有佇列有資料。如果add時,佇列已經滿,則add執行緒要等待,直到佇列有空閒空間。1...

IOS 網路多執行緒 併發 序列佇列

dispatch queue t queue dispatch get global queue 0,0 全域性佇列 dispatch queue t queue3 dispatch queue create queu3 dispatch queue concurrent 併發佇列 dispatch...

多執行緒併發

多執行緒併發主要有3個方面 1 同步器 主要有synchronized,reentrantlock 訊號量,門栓 countdownlatch 障柵 cyclicbarrier 交換器。2 同步容器 主要包括 對映 集 佇列 對映 concurrenthashmap,concurrentskipli...