zoukankan      html  css  js  c++  java
  • 进程间通讯-3(Manager)-实现数据的同时修改

    Manager 可以实现列表,字典,变量,锁,信号量,事件等的数据之间的共享。Manager已经默认加锁了。控制数据不会乱。

    实现了不同进程之间数据的共享,并且可以同时修改。

    from multiprocessing import Process, Manager
    import os
    def f(d, l):
        d[1] = '1' #字典中的key-value
        d['2'] = 2
        d[0.25] = None
        d[os.getpid()]=os.getpid() #往字典中放每个进程的PID号
        l.append(os.getpid()) #获取进程号
        print(l)
    
    if __name__ == '__main__':
        with Manager() as manager: #manager=Manager()
            d = manager.dict() #生成一个可在多个进程之间传递和共享的字典,
            l = manager.list(range(5)) #生成一个可在多个进程之间传递和共享的列表,已经存放了5个元素
            p_list = [] #存放多个进程
    
            for i in range(10):
                p = Process(target=f, args=(d, l))
                p.start()
                p_list.append(p)
    
            for res in p_list: #等待结果
                res.join()
    
            print(d)
            print(l)
    

    运行结果:

    C:abccdxdddOldboypython-3.5.2-embed-amd64python.exe C:/abccdxddd/Oldboy/Py_Exercise/Day10/Manager_tes.py
    [0, 1, 2, 3, 4, 12836]
    [0, 1, 2, 3, 4, 12836, 11324]
    [0, 1, 2, 3, 4, 12836, 11324, 15000]
    [0, 1, 2, 3, 4, 12836, 11324, 15000, 9576]
    [0, 1, 2, 3, 4, 12836, 11324, 15000, 9576, 14476]
    [0, 1, 2, 3, 4, 12836, 11324, 15000, 9576, 14476, 13960]
    [0, 1, 2, 3, 4, 12836, 11324, 15000, 9576, 14476, 13960, 14504]
    [0, 1, 2, 3, 4, 12836, 11324, 15000, 9576, 14476, 13960, 14504, 4208]
    [0, 1, 2, 3, 4, 12836, 11324, 15000, 9576, 14476, 13960, 14504, 4208, 12984]
    [0, 1, 2, 3, 4, 12836, 11324, 15000, 9576, 14476, 13960, 14504, 4208, 12984, 11724]
    {0.25: None, 1: '1', 12836: 12836, 13960: 13960, 11724: 11724, 12984: 12984, 14476: 14476, '2': 2, 9576: 9576, 4208: 4208, 14504: 14504, 15000: 15000, 11324: 11324}
    [0, 1, 2, 3, 4, 12836, 11324, 15000, 9576, 14476, 13960, 14504, 4208, 12984, 11724]
    
    Process finished with exit code 0
    
  • 相关阅读:
    css bug(ie6兼容问题)
    css样式之vertical-align垂直居中的应用
    css浮动
    样式属性(1)
    DOM对象,控制HTML元素(1)
    用户注册
    Kaggle竞赛 —— 泰坦尼克号(Titanic)
    Spring框架第六篇之Spring与DAO
    Spring框架第五篇之Spring与AOP
    Spring框架第四篇之基于注解的DI注入
  • 原文地址:https://www.cnblogs.com/momo8238/p/7358146.html
Copyright © 2011-2022 走看看