当前位置:   article > 正文

python中使用多进程multiprocessing并获取子进程的返回值_multiprocessing开启另一线程进行实例化对象怎么返回到主线程

multiprocessing开启另一线程进行实例化对象怎么返回到主线程

python中使用多进程multiprocessing并获取子进程的返回值

Python中的multiprocessing包是一个多进程管理包,可以用来创建多进程。

multiprocessing包下的Queue是多进程安全的队列,我们可以通过该Queue来进行多进程之间的数据传递。

我们可以通过下面这段代码演示多进程的使用,并将每个进程的结果保存到queue中,最后统一进行输出。


import random
import time
import multiprocessing


def worker(name, q):
    t = 0
    for i in range(10):
        print(name + " " + str(i))
        x = random.randint(1, 3)
        t += x
        time.sleep(x * 0.1)
    q.put(t)


q = multiprocessing.Queue()
jobs = []
for i in range(10):
    p = multiprocessing.Process(target=worker, args=(str(i), q))
    jobs.append(p)
    p.start()

for p in jobs:
    p.join()

results = [q.get() for j in jobs]
print(results)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

输出结果:

......
6 8
9 8
2 7
1 9
4 9
7 9
6 9
2 8
5 9
9 9
2 9
[17, 18, 18, 18, 18, 19, 20, 20, 20, 22]

Process finished with exit code 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/74907
推荐阅读
相关标签
  

闽ICP备14008679号