キュー
キューおよびパイプラインは、これらの2つの方法は、メッセージパッシングの使用である:マルチ・モジュールは、2つの形式をサポートし、プロセス間通信(IPC)を達成するために、プロセス間で互いに分離されています
クラスキューを作成します。
キュー([MAXSIZE]):共有プロセスキューを作成し、キューがマルチプロセスセーフなキューは、あなたが複数のプロセス間の高速データ転送を実現するキューを使用することができます。
はじめとパラメータ:
MAXSIZEをキューに入れることができるエントリの最大数であり、いかなるサイズ制限は省略されていません。
メソッドのはじめに:
入れ:ブロックされたとタイムアウト:キュー.put方法にデータを挿入する方法は2つのオプションのパラメータがあります。
取得:この方法は、同じキューから要素を読み込み、削除することができ、この方法は、2つのオプションのパラメータ:.ブロックされ、タイムアウトを持っています。
put_nowait:、同じプットを使用するデフォルト= Falseのブロックされました
get_nowait:同じGETを使用して、デフォルト= Falseのブロックされました
空:あなたは、このメソッドを呼び出したときに、キューが空の場合、キューは、プロジェクトに参加した場合、結果は、真の復帰の過程では、例えば、信頼性がないTrueを返します。
フル:あなたはキューがいっぱいの場合、このメソッドがtrueを返す呼び出すと、キュー内の項目が削除された場合、その結果は、真の復帰の過程では、例えば、信頼性がありません。
QSIZE:現在のプロジェクトのキュー正しい数を返し、結果は信頼できない見て、結果を返した後、キューが変更される可能性があります。
生産者と消費者モデル
from multiprocessing import Process,JoinableQueue
import time,random
def producer(q,name):
for i in range(10):
print(f'生产者生产了{name}')
time.sleep(random.randint(1, 3))
q.put(f'{name}')
def consumer(q,name):
while True:
res = q.get()
time.sleep(random.randint(1, 3))
print(f'{name}买到了{res}')
q.task_done()
if __name__ == '__main__':
que = JoinableQueue()
p = Process(target=producer, args=(que, 'apple'))
c = Process(target=consumer, args=(que, 'con'))
p.start()
c.daemon = True
c.start()
p.join()
que.join()