热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:python_并发编程——数据共享

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python_并发编程——数据共享相关的知识,希望对你有一定的参考价值。1.数据共

篇首语:本文由编程笔记#小编为大家整理,主要介绍了python_并发编程——数据共享相关的知识,希望对你有一定的参考价值。



1.数据共享

  实现进程之间的数据共享


from multiprocessing import Manager,Process
class MyPro(Process):
def __init__(self,dic):
super().
__init__()
self.dic
= dic
def run(self):
self.dic[
\'count\'] -= 1
print(self.dic)
if __name__ == \'__main__\':
m
= Manager()
dic
= m.dict({\'count\':100})
p
= MyPro(dic)
p.start()
p.join()
print(\'主进程:\',dic)

结果:    

 

2.但是这种数据共享还是存中安全性问题,当有多个进程同时访问数据的时候,还是会出错,当应用在有多个进程的时候,还是要加锁


from multiprocessing import Manager,Process,Lock
class MyPro(Process):
def __init__(self,dic,lock):
super().
__init__()
self.dic
= dic
self.lock
= lock
def run(self):
self.lock.acquire()
self.dic[
\'count\'] -= 1
self.lock.release()
# print(self.dic)
if __name__ == \'__main__\':
lock
= Lock()
m
= Manager()
dic
= m.dict({\'count\':100})
p_list
= []
for i in range(50):
p
= MyPro(dic,lock)
p.start()
p_list.append(p)
for i in p_list:
p.join()
print(\'主进程:\',dic)

结果:



推荐阅读
author-avatar
小雨闹不住
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有