首页 > 编程语言 > 详细

python 多进程-02 进程间数据共享

时间:2020-03-11 10:04:11      阅读:66      评论:0      收藏:0      [点我收藏+]

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)

python 多进程-02 进程间数据共享

原文:https://www.cnblogs.com/pythonPath/p/12459986.html

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