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)
    
  • 相关阅读:
    HDU 5608
    win10 UWP 九幽数据分析
    win10 UWP 九幽数据分析
    win10 UWP 九幽数据分析
    博客发在win10.me
    博客发在win10.me
    博客发在win10.me
    win10 UWP 圆形等待
    win10 UWP 圆形等待
    win10 UWP 圆形等待
  • 原文地址:https://www.cnblogs.com/pythonPath/p/12459986.html
Copyright © 2011-2022 走看看