0
我的任務是提高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。我的意思是「優雅」,就是我希望消費者只要生產商告訴他沒有更多的產品可以生產就不會做任何額外的工作。