zoukankan      html  css  js  c++  java
  • python 多进程-02 进程间数据共享

    0. 生产情况

    1. 在生产环境一般不使用以下方式
    2. 在生产环境一般使用以下方式
    • redis
    • mysql
    • rabbitMQ

    1. 使用Queue 的方式

    import multiprocessing
    import time
    q = multiprocessing.Queue()
    
    
    def task(arg):
        time.sleep(1)
        q.put(arg)
    
    
    if __name__ == '__main__':
        plist = []
        for i in range(10):
            p = multiprocessing.Process(target=task, args=(i,))
            plist.append(p)
    
        for i in plist:
            i.start()
    
        while True:
            running = 0
            for p in plist:
                if p.is_alive():
                    running += 1
            if running == 0:
                break
    
        for i in range(10):
            print(q.get())
    

    2. 使用Manager 的方式

    import multiprocessing
    import time
    m = multiprocessing.Manager()
    dic = m.dict()
    
    
    def task(arg):
        time.sleep(1)
        dic[arg] = 100
    
    
    if __name__ == '__main__':
        plist = []
        for i in range(10):
            p = multiprocessing.Process(target=task, args=(i,))
            plist.append(p)
    
        for i in plist:
            i.start()
    
        while True:
            running = 0
            for p in plist:
                if p.is_alive():
                    running += 1
            if not running:
                break
    
        print(dic)
    
  • 相关阅读:
    Linux下修改Tomcat默认端口
    java 中 byte[]、File、InputStream 互相转换
    安装mule-standalone说明
    python: 可变参数
    vim编码方式设置
    ASCII, Unicode 与 UTF-8
    Vim: 强大的g
    Vim模糊查找与替换
    Vim统计字符串出现次数
    APB简介
  • 原文地址:https://www.cnblogs.com/pythonPath/p/12459986.html
Copyright © 2011-2022 走看看