私の仕事は、rpc呼び出しを行う効率を改善することです。私は生産者と消費者の例を使うことができると信じています。プロデューサーは応答を受け取りますが、コンシューマーは受信したオブジェクトをファイルに書き込みます。
生産者/消費者問題のサンプルプログラムを作成します。よさそうだ。しかし、私の質問は、消費者はいつ終了するかをどのように知っているのかということです。
これが私のコードです:
5 is_exit = False
6 product = []
7
8 def consumer(cond):
9 global product
10 global is_exit
11
12 while True:
13 cond.acquire()
14 while len(product) == 0:
15 cond.wait()
16 product = product[1:]
17 print 'consume one product'
18 cond.release()
19
20 def producer(cond):
21 global product
22 global is_exit
23
24 for i in range(10):
25 cond.acquire()
26 print 'produce one good'
27 product.append(199)
28 cond.notify()
29 cond.release()
/// I use .join() to wait all threads to finish.
プロデューサーは10個の商品しか生産しないため、プロデューサーは何も生産しないことを消費者に通知する方法が必要であり、終了する必要があります。
どんなアドバイスも役に立ちます。どうもありがとう。
PS。私が「優雅に」とは、生産者がこれ以上生産する商品がないと彼に告げるとすぐに、消費者が余分な仕事をしないことを意味します。