gpt4 book ai didi

Python 使用多处理

转载 作者:太空狗 更新时间:2023-10-30 02:16:19 25 4
gpt4 key购买 nike

我正在尝试在 python 3.6 中使用多处理。我有一个 for 循环,它运行一个带有不同参数的方法。目前,它一次运行一个,这需要相当多的时间,所以我正在尝试使用多处理。这是我所拥有的:

def test(self):
for key, value in dict.items():
pool = Pool(processes=(cpu_count() - 1))
pool.apply_async(self.thread_process, args=(key,value))
pool.close()
pool.join()


def thread_process(self, key, value):
# self.__init__()
print("For", key)

我认为我的代码使用 3 个进程来运行一个 method 但我想每个进程运行 1 个方法但我不知道这是如何完成的。顺便说一下,我使用的是 4 核。

最佳答案

您在 for 循环的每次迭代中都创建了一个池。预先创建一个池,应用你想在多进程中运行的进程,然后加入它们:

from multiprocessing import Pool, cpu_count
import time

def t():
# Make a dummy dictionary
d = {k: k**2 for k in range(10)}

pool = Pool(processes=(cpu_count() - 1))

for key, value in d.items():
pool.apply_async(thread_process, args=(key, value))

pool.close()
pool.join()


def thread_process(key, value):
time.sleep(0.1) # Simulate a process taking some time to complete
print("For", key, value)

if __name__ == '__main__':
t()

关于Python 使用多处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44660676/

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