码迷,mamicode.com
首页 > 编程语言 > 详细

python_并发编程——数据共享

时间:2019-12-22 19:59:47      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:list   ase   结果   mamicode   安全   from   性问题   info   release   

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_并发编程——数据共享

标签:list   ase   结果   mamicode   安全   from   性问题   info   release   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!