python 生產者消費者模式
import threading
import queue
import time
# 定義一個生產者
def producer():
count = 0
# 判斷佇列中任務的數量
while q.qsize()<5:
print(' 第 %s 頓飯 ......',count)
q.put(count)
count+=1
time.sleep(1)
# 定義一個消費者
def consumer(name):
while True:
print("%s 吃了第 %s 飯 " % (name,q.get()))
# 定義一個佇列
q = queue.Queue(maxsize=4)
t1 = threading.Thread(target=producer)
t2 = threading.Thread(target=consumer,args=('jibu',))
t1.start()
t2.start()
結果 :
第 %s 頓飯 ...... 0
jibu 吃了第 0 飯
第 %s 頓飯 ...... 1
jibu 吃了第 1 飯
第 %s 頓飯 ...... 2
jibu 吃了第 2 飯
第 %s 頓飯 ...... 3
jibu 吃了第 3 飯
第 %s 頓飯 ...... 4
jibu 吃了第 4 飯
第 %s 頓飯 ...... 5
jibu 吃了第 5 飯
第 %s 頓飯 ...... 6
jibu 吃了第 6 飯
第 %s 頓飯 ...... 7
jibu 吃了第 7 飯
第 %s 頓飯 ...... 8
# 另外,外匯跟單gendan5.com如果供大於求或者求大於供,可以在相對小的一方在增加執行緒的數量
當然如果需要進一步最佳化可以讓消費者執行完佇列中所有任務的時候告訴生產者一聲
import threading
import queue
import time
# 定義一個生產者
def producer():
count = 0
# 判斷佇列中任務的數量
for i in range(5):
print(' 第 %s 頓飯 ......',count)
q.put(count)
count+=1
time.sleep(1)
q.join()
# 定義一個消費者
def consumer(name):
while True:
print("%s 吃了第 %s 飯 " % (name,q.get()))
q.task_done()
print(' 消費者執行完了所有任務 ')
# 定義一個佇列
q = queue.Queue(maxsize=4)
t1 = threading.Thread(target=producer)
t2 = threading.Thread(target=consumer,args=('jibu',))
t1.start()
t2.start()
結果
第 0 頓飯 ......
jibu 吃了第 0 飯
消費者執行完了所有任務
第 1 頓飯 ......
jibu 吃了第 1 飯
消費者執行完了所有任務
第 2 頓飯 ......
jibu 吃了第 2 飯
消費者執行完了所有任務
第 3 頓飯 ......
jibu 吃了第 3 飯
消費者執行完了所有任務
第 4 頓飯 ......
jibu 吃了第 4 飯
消費者執行完了所有任務
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2790651/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 生產者消費者模式模式
- 生產消費者模式模式
- 九、生產者與消費者模式模式
- 併發設計模式---生產者/消費者模式設計模式
- python執行緒通訊與生產者消費者模式Python執行緒模式
- 生產者消費者
- 阻塞佇列和生產者-消費者模式佇列模式
- 生產者消費者模型模型
- 使用BlockQueue實現生產者和消費者模式BloC模式
- java編寫生產者/消費者模式的程式。Java模式
- python中多程式消費者生產者問題Python
- Python | 面試的常客,經典的生產消費者模式Python面試模式
- Java中的設計模式(二):生產者-消費者模式與觀察者模式Java設計模式
- 使用wait()與notifyAll()實現生產者與消費者模式AI模式
- 生產者與消費者問題
- ActiveMQ 生產者和消費者demoMQ
- 生產者消費者模式,以及基於BlockingQueue的快速實現模式BloC
- java進階(40)--wait與notify(生產者與消費者模式)JavaAI模式
- python中多執行緒消費者生產者問題Python執行緒
- Python-多執行緒及生產者與消費者Python執行緒
- 生產者與消費者之Android audioAndroid
- linux 生產者與消費者問題Linux
- 新手練習-消費者生產者模型模型
- Java實現生產者和消費者Java
- 執行緒間的協作(2)——生產者與消費者模式執行緒模式
- python多執行緒+生產者和消費者模型+queue使用Python執行緒模型
- python 多執行緒實現生產者與消費者模型Python執行緒模型
- java實現生產者消費者問題Java
- 生產者消費者模式--java多執行緒同步方法的應用模式Java執行緒
- 讀者寫者與生產者消費者應用場景
- Qt基於QSemaphore的生產者消費者模型QT模型
- 使用Disruptor實現生產者和消費者模型模型
- 鎖,threading local,以及生產者和消費者模型thread模型
- Java多執行緒——生產者消費者示例Java執行緒
- 使用Python佇列和多執行緒實現生產者消費者Python佇列執行緒
- PHP操作Beanstalkd佇列(2)生產者與消費者PHPBean佇列
- golang 併發程式設計之生產者消費者Golang程式設計
- 「Kafka應用」PHP實現生產者與消費者KafkaPHP