gpt4 book ai didi

python - python中的多处理,多个进程运行相同的指令

转载 作者:行者123 更新时间:2023-11-30 22:56:31 27 4
gpt4 key购买 nike

我在 Python 中使用多处理来进行并行化。我正在尝试使用 pandas 并行化从 Excel 文件读取的数据 block 的过程。

我是多重处理和并行处理的新手。在简单代码的实现过程中,

import time;
import os;
from multiprocessing import Process
import pandas as pd
print os.getpid();
df = pd.read_csv('train.csv', sep=',',usecols=["POLYLINE"],iterator=True,chunksize=2);
print "hello";
def my_function(chunk):
print chunk;
count = 0;
processes = [];
for chunk in df:
if __name__ == '__main__':
p = Process(target=my_function,args=(chunk,));
processes.append(p);
if(count==4):
break;
count = count + 1;

打印“hello”被执行多次,我猜测创建的单个进程应该在目标而不是主代码上工作。

任何人都可以建议我哪里错了。

enter image description here

最佳答案

多处理的工作方式是创建一个新进程,然后使用目标函数导入文件。由于最外层范围有打印语句,因此每个进程都会执行一次。

顺便说一句,您应该使用Pool而不是直接使用Process。这是一个清理后的示例:

import os
import time
from multiprocessing import Pool

import pandas as pd

NUM_PROCESSES = 4


def process_chunk(chunk):
# do something
return chunk


if __name__ == '__main__':
df = pd.read_csv('train.csv', sep=',', usecols=["POLYLINE"], iterator=True, chunksize=2)
pool = Pool(NUM_PROCESSES)

for result in pool.map(process_chunk, df):
print result

关于python - python中的多处理,多个进程运行相同的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36954720/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com