国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解Python 模擬實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模式的實(shí)例

2020-02-16 02:02:03
字體:
供稿:網(wǎng)友

詳解Python 模擬實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模式的實(shí)例

散仙使用python3.4模擬實(shí)現(xiàn)的一個(gè)生產(chǎn)者與消費(fèi)者的例子,用到的知識(shí)有線程,隊(duì)列,循環(huán)等,源碼如下:

Python代碼

import queue import time import threading import random   q=queue.Queue(5)  #生產(chǎn)者 def pr():   name=threading.current_thread().getName()   print(name+"線程啟動(dòng)......")   for i in range(100):     t=random.randint(2,9)     print(name,"睡眠時(shí)間: ",t)     time.sleep(t);     d="A"+str(i)     print(name+"正在存第",i+1,"個(gè)數(shù)據(jù): ",d)     #q.put("A"+str(i),False,2000)     q.put(d)   print("生產(chǎn)完畢!")   #消費(fèi)者 def co():   name=threading.current_thread().getName()   time.sleep(1)   print(name+"線程啟動(dòng)......")    while True:     print(name+"檢測到隊(duì)列數(shù)量: ",q.qsize())     t=random.randint(2,9)     print(name,"睡眠時(shí)間: ",t)     data=q.get();     print(name+"消費(fèi)一個(gè)數(shù)據(jù): ",data)     p=threading.Thread(target=pr,name="生產(chǎn)者") c=threading.Thread(target=co,name="消費(fèi)者1") c2=threading.Thread(target=co,name="消費(fèi)者2")  p.start() c.start() c2.start() 

在本例里面散仙啟動(dòng)了1個(gè)生產(chǎn)者線程,2個(gè)消費(fèi)者線程,打印效果如下:

Python代碼 

生產(chǎn)者線程啟動(dòng)...... 生產(chǎn)者 睡眠時(shí)間: 4 消費(fèi)者1線程啟動(dòng)...... 消費(fèi)者1檢測到隊(duì)列數(shù)量: 0 消費(fèi)者1 睡眠時(shí)間: 2 消費(fèi)者2線程啟動(dòng)...... 消費(fèi)者2檢測到隊(duì)列數(shù)量: 0 消費(fèi)者2 睡眠時(shí)間: 3 生產(chǎn)者正在存第 1 個(gè)數(shù)據(jù): A0 生產(chǎn)者 睡眠時(shí)間: 9 消費(fèi)者1消費(fèi)一個(gè)數(shù)據(jù): A0 消費(fèi)者1檢測到隊(duì)列數(shù)量: 0 消費(fèi)者1 睡眠時(shí)間: 8 生產(chǎn)者正在存第 2 個(gè)數(shù)據(jù): A1 生產(chǎn)者 睡眠時(shí)間: 5 消費(fèi)者2消費(fèi)一個(gè)數(shù)據(jù): A1 消費(fèi)者2檢測到隊(duì)列數(shù)量: 0 消費(fèi)者2 睡眠時(shí)間: 7 生產(chǎn)者正在存第 3 個(gè)數(shù)據(jù): A2 生產(chǎn)者 睡眠時(shí)間: 8 消費(fèi)者1消費(fèi)一個(gè)數(shù)據(jù): A2 消費(fèi)者1檢測到隊(duì)列數(shù)量: 0 消費(fèi)者1 睡眠時(shí)間: 2 生產(chǎn)者正在存第 4 個(gè)數(shù)據(jù): A3 生產(chǎn)者 睡眠時(shí)間: 7 消費(fèi)者2消費(fèi)一個(gè)數(shù)據(jù): A3 消費(fèi)者2檢測到隊(duì)列數(shù)量: 0 消費(fèi)者2 睡眠時(shí)間: 9 生產(chǎn)者正在存第 5 個(gè)數(shù)據(jù): A4 生產(chǎn)者 睡眠時(shí)間: 2 消費(fèi)者1消費(fèi)一個(gè)數(shù)據(jù): A4 消費(fèi)者1檢測到隊(duì)列數(shù)量: 0 消費(fèi)者1 睡眠時(shí)間: 5 生產(chǎn)者正在存第 6 個(gè)數(shù)據(jù): A5 生產(chǎn)者 睡眠時(shí)間: 5 消費(fèi)者2消費(fèi)一個(gè)數(shù)據(jù): A5 消費(fèi)者2檢測到隊(duì)列數(shù)量: 0 消費(fèi)者2 睡眠時(shí)間: 6 生產(chǎn)者正在存第 7 個(gè)數(shù)據(jù): A6 生產(chǎn)者 睡眠時(shí)間: 7 消費(fèi)者1消費(fèi)一個(gè)數(shù)據(jù): A6 消費(fèi)者1檢測到隊(duì)列數(shù)量: 0 消費(fèi)者1 睡眠時(shí)間: 7 生產(chǎn)者正在存第 8 個(gè)數(shù)據(jù): A7 生產(chǎn)者 睡眠時(shí)間: 3 消費(fèi)者2消費(fèi)一個(gè)數(shù)據(jù): A7 消費(fèi)者2檢測到隊(duì)列數(shù)量: 0 消費(fèi)者2 睡眠時(shí)間: 8 生產(chǎn)者正在存第 9 個(gè)數(shù)據(jù): A8 生產(chǎn)者 睡眠時(shí)間: 2 消費(fèi)者1消費(fèi)一個(gè)數(shù)據(jù): A8 消費(fèi)者1檢測到隊(duì)列數(shù)量: 0 消費(fèi)者1 睡眠時(shí)間: 4 生產(chǎn)者正在存第 10 個(gè)數(shù)據(jù): A9 生產(chǎn)者 睡眠時(shí)間: 4 消費(fèi)者2消費(fèi)一個(gè)數(shù)據(jù): A9 消費(fèi)者2檢測到隊(duì)列數(shù)量: 0 消費(fèi)者2 睡眠時(shí)間: 5 生產(chǎn)者正在存第 11 個(gè)數(shù)據(jù): A10 生產(chǎn)者 睡眠時(shí)間: 2 消費(fèi)者1消費(fèi)一個(gè)數(shù)據(jù): A10 消費(fèi)者1檢測到隊(duì)列數(shù)量: 0 消費(fèi)者1 睡眠時(shí)間: 3 生產(chǎn)者正在存第 12 個(gè)數(shù)據(jù): A11 生產(chǎn)者 睡眠時(shí)間: 3 消費(fèi)者2消費(fèi)一個(gè)數(shù)據(jù): A11 消費(fèi)者2檢測到隊(duì)列數(shù)量: 0 消費(fèi)者2 睡眠時(shí)間: 3 生產(chǎn)者正在存第 13 個(gè)數(shù)據(jù): A12 生產(chǎn)者 睡眠時(shí)間: 3 消費(fèi)者1消費(fèi)一個(gè)數(shù)據(jù): A12 消費(fèi)者1檢測到隊(duì)列數(shù)量: 0 消費(fèi)者1 睡眠時(shí)間: 3 生產(chǎn)者正在存第 14 個(gè)數(shù)據(jù): A13 生產(chǎn)者 睡眠時(shí)間: 8 消費(fèi)者2消費(fèi)一個(gè)數(shù)據(jù): A13 消費(fèi)者2檢測到隊(duì)列數(shù)量: 0 消費(fèi)者2 睡眠時(shí)間: 7 生產(chǎn)者正在存第 15 個(gè)數(shù)據(jù): A14 生產(chǎn)者 睡眠時(shí)間: 3 消費(fèi)者1消費(fèi)一個(gè)數(shù)據(jù): A14 消費(fèi)者1檢測到隊(duì)列數(shù)量: 0 消費(fèi)者1 睡眠時(shí)間: 7 生產(chǎn)者正在存第 16 個(gè)數(shù)據(jù): A15 生產(chǎn)者 睡眠時(shí)間: 2 消費(fèi)者2消費(fèi)一個(gè)數(shù)據(jù): A15 消費(fèi)者2檢測到隊(duì)列數(shù)量: 0 消費(fèi)者2 睡眠時(shí)間: 9             
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岳普湖县| 邓州市| 富宁县| 佛教| 佳木斯市| 双峰县| 寿宁县| 巫溪县| 宁化县| 西吉县| 阿瓦提县| 万山特区| 黑河市| 抚州市| 瑞安市| 土默特右旗| 安康市| 康平县| 湖北省| 吉安市| 通山县| 金阳县| 银川市| 大理市| 新宁县| 安泽县| 江油市| 辉南县| 大渡口区| 武夷山市| 休宁县| 清丰县| 竹溪县| 姜堰市| 湘阴县| 彭阳县| 乌拉特前旗| 遂昌县| 石河子市| 黄浦区| 泗阳县|