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绘制常用的图表
Aug 27 Python
Python闭包函数定义与用法分析
Jul 20 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
详解django实现自定义manage命令的扩展
Aug 13 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
python使用Geany编辑器配置方法
Feb 21 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
Mar 30 Python
django日志默认打印request请求信息的方法示例
May 17 Python
深入了解Python 方法之类方法 & 静态方法
Aug 17 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
PHP学习之整理字符串
2011/04/17 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
vue+moment实现倒计时效果
2019/08/26 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
Python3处理HTTP请求的实例
2018/05/10 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
python 自动重连wifi windows的方法
2018/12/18 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
python re模块常见用法例举
2021/03/01 Python
python实现控制台输出颜色
2021/03/02 Python
环境工程大学生自荐信
2013/10/21 职场文书
力学专业毕业生自荐信
2013/11/17 职场文书
教师产假请假条
2014/04/10 职场文书
高一学生评语大全
2014/04/25 职场文书
幼儿教师求职信
2014/05/24 职场文书
琅琊山导游词
2015/02/05 职场文书
个人年终总结结尾
2015/03/06 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL