进程间通信 Queue

import  multiprocessing

def download_from_web(q):
# 模拟从网上下载数据
data = [11, 22, 33, 44]
for i in data:
q.put(i)
print("---数据下载已写入到队列---") def analysis_data(q):
waitting_analysis_data = list()
while not q.empty():
waitting_analysis_data.append(q.get())
print(str(waitting_analysis_data) + " <<< 数据拼接完毕") def main(): # 1. 创建一个队列
q = multiprocessing.Queue(4)
# 2. 创建多个进程,将队列的引用当作实参进行传递到里面
p1 = multiprocessing.Process(target=download_from_web, args=(q,))
p2 = multiprocessing.Process(target=analysis_data, args=(q,)) p1.start()
p2.start() if __name__ == '__main__':
main()

进程池

from multiprocessing import Pool
import os, time, random def worker(msg):
t_start = time.time() print("%s 开始执行,进程号为%d" % (msg, os.getpid())) time.sleep(random.random() * 2)
t_stop = time.time() print(msg, "执行完毕, 耗时%.2f" % (t_stop - t_start)) def main():
po = Pool(3) for i in range(0,10):
po.apply_async(worker, (i,)) print("---start---")
po.close()
po.join()
print("---sop---") if __name__ == '__main__':
main()

最新文章

  1. Java class,Object,Class的区别
  2. drawable animation
  3. Bootstrap&lt;基础十五&gt; 输入框组
  4. cf251.2.C (构造题的技巧)
  5. Bootstrap简介
  6. locutus(phpjs) 的使用
  7. spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?
  8. iOS页面传值方式
  9. IBatis.Net学习笔记六--再谈查询
  10. UISwitch和UIActivity的使用
  11. 栈的的链式实例LinkStack实现
  12. 使用Devexpress中的CharControl控件,需要控制AxisY轴的显示范围,需要使用该控件的BoundDataChanged事件
  13. javascript 中 事件流和事件冒泡
  14. Maven中央(或国内)仓库地址
  15. java程序调用xfire发布的webService服务(二)
  16. Vue学习笔记一:初识Vue
  17. Python基础01_介绍_HelloWorld
  18. php oracle数据库NCOLB字段ORA-01704
  19. bbs项目富文本编辑器实现上传文件到media目录
  20. Python3.5 学习十七

热门文章

  1. 9.consul获取服务实例,调用测试
  2. Spring Data学习中心
  3. Web项目中使用Log4net 案例
  4. vb.net 对字符串中的括号匹配进行判断,容许嵌套
  5. pytest 学习笔记一 入门篇
  6. 测试效率加倍提升!shell 高阶命令快来 get 下!
  7. spring boot 从开发到部署(二)—重启服务
  8. package.json中dependencies 与devDependencies 的区别
  9. [转帖]IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)
  10. LPAT: Learning to Predict Adaptive Threshold for Weakly-supervised Temporal Action Localization [Paper Reading]