队列介绍

进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的

创建队列的类(底层就是以管道和锁定的方式实现)

制定队列最大大小

Queue([maxsize]):创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。

参数介绍:

maxsize是队列中允许最大项数,省略则无大小限制。
但需要明确:
1、队列内存放的是消息而非大数据
2、队列占用的是内存空间,因而maxsize即便是无大小限制也受限于内存大小

主要方法介绍:

q.put方法用以放入数据到队列中。
q.get方法可以从队列读取并且删除一个元素

1.队列里面不应该放入大数据, 放小数据

2.队列不指定大小,就无限大使用空间,队列使用内存的空间

使用队列目的是实现进程之间通信

一个进程把自己的消息放到队列里,另外一个进程从队列里取消息进行处理

from multiprocessing import Queue

# 实例化对象
q = Queue(3) q.put("helo")
q.put({"a": 1})
q.put([1,2,3,4,5]) # 看队列满了没有
print(q.full()) q.put("") '''
True
满了后再放数据,程序直接卡主, 锁住
'''

取数据 q.get

from multiprocessing import Queue

# 实例化对象
q = Queue(3) q.put("helo")
q.put({"a": 1})
q.put([1,2,3,4,5]) # 队列先进先出
print(q.get()) # helo
print(q.get()) # {"a": 1}
print(q.get()) # [1,2,3,4,5] '''
helo
{'a': 1}
[1, 2, 3, 4, 5]
'''

清空数据再去队列取数据

from multiprocessing import Queue

# 实例化对象
q = Queue(3) q.put("helo")
q.put({"a": 1})
q.put([1,2,3,4,5]) # 队列先进先出
print(q.get()) # helo
print(q.get()) # {"a": 1}
print(q.get()) # [1,2,3,4,5] # 清空数据
print(q.empty()) # 清空后再去取数据
print(q.get()) '''
helo
{'a': 1}
[1, 2, 3, 4, 5]
True 卡主了 队列没有数据卡主 加锁了
'''

最新文章

  1. iOS中CocoaPads的安装与配置(总结)
  2. python基础知识4——collection类——计数器,有序字典,默认字典,可命名元组,双向队列
  3. ASP.NET MVC ValueProvider小结
  4. nyoj 120 校园网络
  5. 主题敏感词PageRank
  6. 关于Delphi XE2的FMX的一点点研究之消息篇
  7. 洛谷 P1613 解题报告
  8. PAT1021:Deepest Root
  9. SAP Change Request Management (ChaRM)基础教程
  10. Excel技巧--巧用分列功能整理日期格式
  11. 鸟哥的Linux私房菜:基础学习篇 —— 第六章笔记
  12. 前端 HTML body标签相关内容 常用标签 标题标签 h1-h6
  13. 一、SQL应用(工作中遇到的根据表的某列的值不同,采用的不同列关联表)
  14. PowerDesigner 逆向工程
  15. linux c编程操作数据库(sqlite3应用)
  16. Git管理本地代码(一)【转】
  17. fis3 scss 版本报错
  18. hive中修改序列化格式分隔符
  19. error: failed to push some refs to 'https://git.oschina.net/bluede/TuShuGuanLi.g it'
  20. Java基础——语法基础

热门文章

  1. SpringMVC的工作原理及MVC设计模式
  2. mysql 普通用户与权限
  3. 把数据存储到 XML 文件
  4. luoguP1514 引水入城 x
  5. 7.Python编码规范(PEP 8)
  6. windows7 中 wacom数位板如何关闭点击水波 和长按右键这两个特效
  7. [LeetCode]-DataBase-Employees Earning More Than Their Managers
  8. Vue 中 使用v-show
  9. 一句话搞定python六剑客
  10. React Native商城项目实战04 - 封装TabNavigator.Item的创建