首页 > 编程语言 > 详细

python_并发编程——数据共享

时间:2019-12-22 21:06:04      阅读:75      评论:0      收藏:0      [点我收藏+]

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)

结果:技术分享图片

python_并发编程——数据共享

原文:https://www.cnblogs.com/wangdianchao/p/12080687.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!