1.佇列1
#程序間通訊(ipc(inter-process communication))
#程序之間通訊用的佇列(queue),不是之前說的普通佇列(import queue)
#概念介紹
#建立共享的程序佇列,queue是多程序安全的佇列,可以使用queue實現多程序之間的資料傳遞
#queue([maxsize])
#建立共享的程序佇列
#引數:maxsize是佇列中允許的最大項數
#底層佇列使用管道和鎖定實現
#q.get( [ block [, timeout]] )
#返回q佇列中的乙個專案,如果q為空,此方法將阻塞,直到佇列中有專案可用為止,block用於控制阻塞的行為
#預設為true,如果設定為false,將引發queue.empty異常(定義在queue模組中)。timeout是可選超時時間
#用在阻塞模式中,如果在制定的時間間隔內沒有專案變為可用,將引發queue.empty異常
#q.get_nowait()
#同q.get(false)方法
#q.put(item [, block[, timeout]])
#將item放入佇列,如果佇列已滿,此方法將阻塞至有空間可用為止,block用於控制阻塞的行為
#預設為true,如果設定為false,將引發queue.empty異常(定義在queue模組中)
#timeout指定在阻塞模式中等待可用空間的時間長短,超時後將引發queue.full異常
#q.qsize()
#返回佇列中目前專案的正確數量,次函式的結果並不可靠,因為在返回結果和在稍後程式中使用結果之間,佇列中
#可能新增或刪除了專案,在某些系統上,此方法可能引發notimplementederror異常
#from multiprocessing import queue##
q = queue(5) # 建立乙個程序間通訊用的佇列,佇列大小是5
#q.put(1) # 向佇列中放資料,當放入到佇列的資料超過上限個時,會阻塞在這裡,只有當佇列中的資料被取走才會接觸阻塞向佇列裡繼續放資料
#q.put(1) # 向佇列中放資料
#q.put(1) # 向佇列中放資料
#q.put(1) # 向佇列中放資料
#q.put(1) # 向佇列中放資料
#print(q.full()) # 檢視佇列是否滿了,true表示滿了,false表示沒有滿
##q.put(1) # 向佇列中放資料 當放入到佇列的資料超過上限個時,會阻塞在這裡,只有當佇列中的資料被取走才會接觸阻塞向佇列裡繼續放資料
#print(q.get()) # 從佇列中取資料,當佇列中的資料被取乾淨之後,在呼叫get則會阻塞在這裡,等待佇列中有資料
#print(q.empty()) # 查詢佇列是否為空, false表示佇列非空,true表示佇列已經空了
#print(q.get())
#print(q.get())
#print(q.get())
#print(q.get())
#try:
#print(q.get_nowait()) # 取值,沒有值則不阻塞在這裡,會丟擲異常報錯
#except:
#print('佇列已空')
from multiprocessing import
queue
from multiprocessing import
process
#如果向佇列中放資料,則處於的是生產佇列的一方
defproduce(q):
'''生產資料的函式,向佇列中存放資料
:return:
'''q.put(
'hello')
#消耗資料的一方
defconsume(q):
'''消耗資料的一方,讀取佇列中的資料
:param q:
:return:
(q.get())
if__name__ == '
__main__':
q = queue() #
建立佇列時,沒有引數,則表示佇列無上限
p = process(target=produce, args=(q, ))
p.start()
c = process(target=consume, args=(q, ))
c.start()
Python程序間通訊Queue訊息佇列用法分析
程序間通訊 queue process之間有時需要通訊,作業系統提供了很多機制來實現程序間的通訊。1.queue的使用 可以使用multiprocessing模組的queue實現多程序之間的資料傳遞,queue本身是乙個訊息列隊程式,首先用乙個小例項來演示下queue的工作原理 如下 coding ...
程序間通訊 Queue
process之間有時需要通訊,作業系統提供了很多機制來實現程序間的通訊。可以使用multiprocessing模組的queue實現多程序之間的資料傳遞,queue本身是乙個訊息列隊程式,首先用乙個小例項來演示一下queue的工作原理 coding utf 8 from multiprocessin...
程序間通訊 Queue
可以使用multiprocessing模組的queue實現多程序之間的資料傳遞,queue本身是乙個訊息列隊程式,首先用乙個小例項來演示一下queue的工作原理 coding utf 8 from multiprocessing import queue q queue 3 初始化乙個queue物件...