Python实现多进程共享数据的方法分析
本文实例讲述了Python实现多进程共享数据的方法。分享给大家供大家参考,具体如下:
示例一:
#-*-coding:utf-8-*- frommultiprocessingimportProcess,Manager importtime importrandom defkkk(a_list,number): foriinrange(10): a_list.append(i) time.sleep(random.randrange(2)) print('这是进程{}{}'.format(number,a_list)) print('这是进程{}{}'.format(number,a_list)) defjjj(a_list): foriinrange(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\'sok')
输出:
这是进程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'sok Processfinishedwithexitcode0
示例二:
使用Manager
#-*-coding:utf-8-*- frommultiprocessingimportProcess,Manager importtime importrandom defkkk(a_list,number): foriinrange(10): a_list.append(i) time.sleep(random.randrange(2)) print('这是进程{}{}'.format(number,a_list)) print('这是进程{}{}'.format(number,a_list)) defjjj(a_list): foriinrange(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\'sok')
输出:
这是进程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'sok Processfinishedwithexitcode0
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《PythonSocket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。