如何在python上多进程处理数据

Posted 甘木甘木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python上多进程处理数据相关的知识,希望对你有一定的参考价值。

python 多进程 处理数据

如果数据是不需要按照顺序处理的,直接用pool就可以。

下面的例子中subprocess结束的顺序不固定,如需按照顺序使用queue

  • Pool: 进程池,控制最多有多少进程
  • Manager: 主进程
    • m.dict: 主进程的字典,所有进程共享
from  multiprocessing import Pool, Manager
import time, random

def show(num, user_dict):
    time.sleep(random.random())
    print(num)
    user_dict[num] = 1

m = Manager()
u_dict = m.dict()

process_num = 64 #64-cores
p = Pool(process_num)

for i in range(20):
    p.apply_async(show, args=(i, u_dict))

print('wait all childeren finish')

p.close() #关闭pool 再也不使用
p.join()  #等所有subprocess结束

u_dict = u_dict.keys()
print(u_dict)

以上是关于如何在python上多进程处理数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在python上多进程处理数据

linux上多进程写一个msg时性能差

python - 如何在一个套接字上使用传入数据流来处理Python中的多个并行进程?

Python 多处理:如何启动相互依赖的进程?

python多个线程锁可提高效率吗

Spacy,在 python 中的大型数据集上使用 nlp.pipe,多处理导致进程进入睡眠状态。如何正确使用所有 CPU 内核?