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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 生產者消費者模式模式
- 生產消費者模式模式
- 九、生產者與消費者模式模式
- 併發設計模式---生產者/消費者模式設計模式
- 阻塞佇列和生產者-消費者模式佇列模式
- Java 生產者消費者模式詳細分析Java模式
- 生產者消費者模型模型
- python執行緒通訊與生產者消費者模式Python執行緒模式
- java編寫生產者/消費者模式的程式。Java模式
- 使用BlockQueue實現生產者和消費者模式BloC模式
- 用Python多執行緒實現生產者消費者模式Python執行緒模式
- Python中的生產者消費者問題Python
- 架構設計:生產者/消費者模式[0]:概述架構模式
- Java多執行緒——生產者和消費者模式Java執行緒模式
- Java中的設計模式(二):生產者-消費者模式與觀察者模式Java設計模式
- ActiveMQ 生產者和消費者demoMQ
- Python | 面試的常客,經典的生產消費者模式Python面試模式
- python中多程式消費者生產者問題Python
- Java實現生產者和消費者Java
- 新手練習-消費者生產者模型模型
- Java實現生產者-消費者模型Java模型
- 生產者和消費者(.net實現)
- 使用wait()與notifyAll()實現生產者與消費者模式AI模式
- java實現生產者消費者問題Java
- linux 生產者與消費者問題Linux
- 多執行緒之生產者消費者執行緒
- 直觀理解生產者消費者問題
- Python-多執行緒及生產者與消費者Python執行緒
- python中多執行緒消費者生產者問題Python執行緒
- java進階(40)--wait與notify(生產者與消費者模式)JavaAI模式
- 執行緒間的協作(2)——生產者與消費者模式執行緒模式
- 架構設計:生產者/消費者模式[4]:雙緩衝區架構模式
- 生產者消費者模式,以及基於BlockingQueue的快速實現模式BloC
- 讀者寫者與生產者消費者應用場景
- Java多執行緒——生產者消費者示例Java執行緒
- 生產者與消費者之Android audioAndroid
- Qt基於QSemaphore的生產者消費者模型QT模型
- 使用Disruptor實現生產者和消費者模型模型