如何在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 - 如何在一个套接字上使用传入数据流来处理Python中的多个并行进程?
Spacy,在 python 中的大型数据集上使用 nlp.pipe,多处理导致进程进入睡眠状态。如何正确使用所有 CPU 内核?