Python实现多进程共享数据的方法分析


Posted in Python onDecember 04, 2017

本文实例讲述了Python实现多进程共享数据的方法。分享给大家供大家参考,具体如下:

示例一:

# -*- coding:utf-8 -*-
from multiprocessing import Process, Manager
import time
import random
def kkk(a_list, number):
  for i in range(10):
    a_list.append(i)
    time.sleep(random.randrange(2))
    print('这是进程{} {}'.format(number, a_list))
  print('这是进程{} {}'.format(number, a_list))
def jjj(a_list):
  for i in range(2):
    process = Process(target=kkk, args=(a_list, i))
    process.start()
if __name__ == '__main__':
  a_list = []
  process_0 = Process(target=jjj, args=(a_list,))
  process_0.start()
  process_0.join()
  print(a_list)
  print(len(a_list))
  print('it\'s ok')

输出:

这是进程0 [0]
这是进程0 [0, 1]
这是进程0 [0, 1, 2]
这是进程0 [0, 1, 2, 3]
这是进程1 [0]
这是进程0 [0, 1, 2, 3, 4]
这是进程1 [0, 1]
这是进程0 [0, 1, 2, 3, 4, 5]
这是进程1 [0, 1, 2]
这是进程1 [0, 1, 2, 3]
这是进程1 [0, 1, 2, 3, 4]
这是进程1 [0, 1, 2, 3, 4, 5]
这是进程0 [0, 1, 2, 3, 4, 5, 6]
这是进程0 [0, 1, 2, 3, 4, 5, 6, 7]
这是进程0 [0, 1, 2, 3, 4, 5, 6, 7, 8]
这是进程1 [0, 1, 2, 3, 4, 5, 6]
这是进程0 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
这是进程0 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
这是进程1 [0, 1, 2, 3, 4, 5, 6, 7]
这是进程1 [0, 1, 2, 3, 4, 5, 6, 7, 8]
这是进程1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
这是进程1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[]
0
it's ok
Process finished with exit code 0

示例二:

使用 Manager

# -*- coding:utf-8 -*-
from multiprocessing import Process, Manager
import time
import random
def kkk(a_list, number):
  for i in range(10):
    a_list.append(i)
    time.sleep(random.randrange(2))
    print('这是进程{} {}'.format(number, a_list))
  print('这是进程{} {}'.format(number, a_list))
def jjj(a_list):
  for i in range(2):
    process = Process(target=kkk, args=(a_list, i))
    process.start()
if __name__ == '__main__':
  manager = Manager()
  a_list = manager.list()
  # a_list = []
  process_0 = Process(target=jjj, args=(a_list,))
  process_0.start()
  process_0.join()
  print(a_list)
  print(len(a_list))
  print('it\'s ok')

输出:

这是进程0 [0, 0]
这是进程0 [0, 0, 1]
这是进程0 [0, 0, 1, 2]
这是进程0 [0, 0, 1, 2, 3]
这是进程0 [0, 0, 1, 2, 3, 4]
这是进程1 [0, 0, 1, 2, 3, 4, 5]
这是进程0 [0, 0, 1, 2, 3, 4, 5, 1]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5]
这是进程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6]
这是进程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7]
这是进程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7]
这是进程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8]
这是进程0 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8, 9]
这是进程1 [0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8, 9]
[0, 0, 1, 2, 3, 4, 5, 1, 6, 2, 3, 4, 5, 6, 7, 8, 9, 7, 8, 9]
20
it's ok
Process finished with exit code 0

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现问号表达式(?)的方法
Nov 27 Python
python显示生日是星期几的方法
May 27 Python
Python中exit、return、sys.exit()等使用实例和区别
May 28 Python
python时间日期函数与利用pandas进行时间序列处理详解
Mar 13 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
Python3安装Pillow与PIL的方法
Apr 03 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 Python
python sitk.show()与imageJ结合使用常见的问题
Apr 20 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
Python数据结构之栈、队列的实现代码分享
Dec 04 #Python
关于Python数据结构中字典的心得
Dec 04 #Python
python Flask实现restful api service
Dec 04 #Python
浅谈Python中带_的变量或函数命名
Dec 04 #Python
Python中对象的引用与复制代码示例
Dec 04 #Python
Python3 Random模块代码详解
Dec 04 #Python
利用python爬取斗鱼app中照片方法实例
Dec 03 #Python
You might like
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
基于empty函数的输出详解
2013/06/17 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
javascript常见用法总结
2014/05/22 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
BootStrap3使用错误记录及解决办法
2016/12/22 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
微信小程序实现之手势锁功能实例代码
2018/07/19 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
用 Python 制作地球仪的方法
2020/04/24 Python
Python利用命名空间解析XML文档
2020/08/10 Python
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
骆驼官方商城:CAMEL
2016/11/22 全球购物
财务管理专业毕业生求职信范文
2013/09/21 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
11月升旗仪式讲话稿
2014/02/15 职场文书
前处理组长岗位职责
2014/03/01 职场文书
社会学专业求职信
2014/07/17 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
SQL SERVER存储过程用法详解
2022/02/24 SQL Server
Python pyecharts绘制条形图详解
2022/04/02 Python