建立可鏈接的共享進程隊列。這就像是一個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