multiprocess.JoinableQueue([maxsize])模塊

JoinableQueue([maxsize])模塊

建立可鏈接的共享進程隊列。這就像是一個Queue對象,但隊列容許項目的使用者通知生產者項目已經被成功處理。通知進程是使用共享的信號和條件變量來實現的。python

方法介紹

q.task_done():使用者使用此方法發出信號,表示q.get()返回的項目已經被處理。若是調用此方法的次數大於從隊列中刪除的項目數量,將引起ValueError異常。code

q.join():生產者將使用此方法進行阻塞,直到隊列中全部項目均被處理。阻塞將持續到爲隊列中的每一個項目均調用q.task_done()方法爲止。對象

from multiprocessing import JoinableQueue
#用法和Queue類似
q = JoinableQueue()
q.put('ocean')#隊列放入一個任務,內存在一個計數機制,+1
q.put('can')#計數機制 +1
print(q.get())
q.task_done()#完成一次任務,計數機制-1
print(q.get())
q.task_done()#計數機制  -1
q.join()#計數機制不爲0的時候,阻塞等待計數器爲0後經過
##################
ocean
can
相關文章
相關標籤/搜索