Python--day38---进程间通信--初识队列(multiprocess.Queue)
2024-08-23 12:51:15
初识队列:
进程间通信IPC(Inter-Process Communication)
1,队列的方法:
q = Queue(5)
1,q.put(1) #把1放进队列
2,print(q.full()) #队列是否满了
3,print(q.empty()) #队列是否为空
4,q.get_nowait() #队列为空则抛异常
5,c1.daemon = True #设置为守护进程 主进程中的代码执行完毕之后,子进程自动结束
#队列 先进先出
#IPC
import time
from multiprocessing import Queue
q = Queue(5)
q.put(1)
q.put(2)
q.put(3)
q.put(4)
q.put(5)
print(q.full()) #队列是否满了
print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.empty()) #队列是否为空
#while True这个行为非常地耗内存
while True:
try:
q.get_nowait()
except:
print('队列已空')
time.sleep(1)
运行结果:
2,一个例子:
from multiprocessing import Queue,Process def produce(q):
q.put('hello') def consume(q):
print(q.get()) if __name__ == '__main__':
q = Queue()
p = Process(target=produce,args=(q,))
p.start()
c = Process(target=consume, args=(q,))
c.start()
运行结果:
最新文章
- C++-Qt【2】-实现一个简单的记事本
- RabbitMQ框架学写笔记-20161201
- MVC丶 (未完待续······)
- HTML5:web socket 和 web worker
- 给linux 授权一个可以远程登录的账户
- 一个URL链接到一个页面发生了什么?
- maven笔记-入门(helloWorld)
- 一步步学Mybatis-实现多表联合查询(4)
- Gradle – Spring 4 MVC Hello World Example – Annotation
- block 浅析
- C++11于once_flag,call_once分析的实现
- OR1200数据Cache介绍
- Android开发学习——自定义View
- 使用yield生成器,用Python实现用户对用户输入信息的监听和过滤
- js生成tree形组织机构下拉框
- 搭建自己的docker仓库
- 开源代码SlidingMenu的使用
- (转)linux下vi命令修改文件及保存的使用方法
- cannot import name '_imaging' 报错
- ACM-ICPC(10 / 9)
热门文章
- VLSM(可变长子网掩码)
- vs2015卸载、vs2008安装Visual Assist x
- JavaScript--预解析在IE存在的问题
- 【51NOD1028】大数乘法 V2
- jQuery打飞机游戏
- SWF在线绘本批量制作高质量PDF的新方法(重点在批量制作)
- 简单线性回归(最小二乘法)python实现
- [mysql]MySQL Daemon failed to start 2016-08-14 21:27 1121人阅读 评论(18) 收藏
- 洛谷4178 BZOJ1468 Tree题解点分治
- 【Leetcode链表】两两交换链表中的节点(24)