需求
1. a进程处理数据,a进程处理数据的速度不能被其他因素影响
2. b进程再获取数据,处理逻辑
3. b进程中处理逻辑的时候用到time.sleep 延迟 或者 b进程逻辑中会影响代码速度的运行
4. b进程就会阻塞a进程处理数据的速度
代码demo
import time
from multiprocessing import Process, JoinableQueue
import os
obj = {
"a":1
}
def 识别(p):
a = 0
while True:
try:
obj['a'] = obj['a'] +1
p.put_nowait(obj)
except Exception as e:
# print("队列已满, %d" % os.getpid(), obj)
os.getpid()
def 刷图(p):
while True:
try:
data = p.get_nowait() # 当队列内无数据时,不会阻塞,会报错
print(data)
time.sleep(5)
except Exception as e:
print("队列已空", e)
if __name__ == "__main__":
p = JoinableQueue(2)
time1 = time.time()
#存放所有进程
processlist = [];
# 创建进程识别
p1 = Process(target=识别,args=(p,))
# 创建进程刷图
p2 = Process(target=刷图,args=(p,))
# 开启进程
p1.start()
print(1212121)
p2.start()
p1.join()
p2.join()
# processlist.append(p)
time2 = (time.time() - time1)*1000
print('主进程结束',time2)
# ceshi()
版权声明:本文为weixin_45799605原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。