这里有新鲜出炉的 Python3 官方中文指南, 程序狗速度看过来!
Python 编程语言
Python 是一种面向对象, 解释型计算机程序设计语言, 由 Guido van Rossum 于 1989 年底发明, 第一个公开发行版发行于 1991 年. Python 语法简洁而清晰, 具有丰富和强大的类库. 它常被昵称为胶水语言, 它能够把用其他语言制作的各种模块 (尤其是 C/C++) 很轻松地联结在一起.
这篇文章主要介绍了 Python 实现多进程共享数据的方法, 结合实例形式分析了 Python 多进程共享数据的相关实现技巧, 需要的朋友可以参考下
本文实例讲述了 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 程序设计有所帮助.
来源: http://www.phperz.com/article/18/0130/361494.html