#進城之間資料隔離
#程序之間通訊(ipc) inter process communication
#基於檔案 :同一臺機器上的多個程序之間通訊
#queue 佇列
#基於socket的檔案級別的通訊來完成資料傳遞的
#基於網路 :同一臺機器或者多台機器上的多程序間通訊
#第三方工具(訊息中介軟體)
#memcache
#redis
#rabbitmq
#kafka
#from multiprocessing import queue,process
#def pro(q):
#for i in range(10):
#print(q.get())
#def son(q):
#for i in range(10):
#q.put('hello%s'%i)##
if __name__ == '__main__':
#q = queue()
#p = process(target=son,args=(q,))
#p.start()
#p = process(target=pro, args=(q,))
#p.start()
#生產者消費者模型
#爬蟲的時候
#分布式操作 : celery
#本質 :就是讓生產資料和消費資料的效率達到平衡並且最大化的效率
#import time
#import random
#from multiprocessing import queue,process##
def consumer(q): # 消費者:通常取到資料之後還要進行某些操作
#for i in range(10):
#print(q.get())##
def producer(q): # 生產者:通常在放資料之前需要先通過某些**來獲取資料
#for i in range(10):
#time.sleep(random.random())
#q.put(i)##
if __name__ == '__main__':
#q = queue()
#c1 = process(target=consumer,args=(q,))
#p1 = process(target=producer,args=(q,))
#c1.start()
#p1.start()
import
time
import
random
from multiprocessing import
queue,process
def consumer(q,name): #
消費者:通常取到資料之後還要進行某些操作
while
true:
food =q.get()
iffood:
print('
%s吃了%s
'%(name,food))
else:break
def producer(q,name,food): #
生產者:通常在放資料之前需要先通過某些**來獲取資料
for i in range(10):
foodi = '
%s%s
'%(food,i)
print('
%s生產了%s
'%(name,foodi))
time.sleep(random.random())
q.put(foodi)
if__name__ == '
__main__':
q =queue()
c1 = process(target=consumer,args=(q,'
alex'))
c2 = process(target=consumer,args=(q,'
alex'))
p1 = process(target=producer,args=(q,'
大壯','泔水'
)) p2 = process(target=producer,args=(q,'
b哥','香蕉'
)) c1.start()
c2.start()
p1.start()
p2.start()
p1.join()
p2.join()
q.put(none)
q.put(none)
基於佇列實現生產者消費者模型
code from multiprocessing import process,queue import time,random,os def consumer q,p1 while true res q.get if res finish break time.sleep random.rand...
C 實現生產者消費者佇列
結果分析 原始碼位址 首先,我們的生產者與消費者佇列需要滿足同步與互斥關係,就需要一把互斥鎖,以及生產者與消費者各自的條件變數。其次,我們可以利用c 中stl裡的queue佇列來進行實現,但是我們需要對push,pop進行修改,因為stl庫的函式不一定能滿足互斥條件。也就是不一定安全。最後,所有資源...
佇列,生產者消費者模型
from multiprocessing import process,lock import os,time,json with open user w encoding utf 8 as f dic json.dump dic,f def search with open user r enco...