在python3中,我需要一个进程池,在其中异步应用多个worker。你知道吗
问题是,我需要从一系列独立的Python进程将worker“发送”到池中。
因此,所有worker都应该在相同的Pool
实例中执行。你知道吗
注意:目标是在不使用所有计算机资源的情况下处理大量数据。你知道吗
具有以下multi.py
示例代码:
import multiprocessing
from time import sleep
def worker(x):
sleep(5)
return x*x
if __name__ == "__main__":
pool = multiprocessing.Pool(processes=int(multiprocessing.cpu_count()/2)) # Using half of the CPU cores
for i in range(10):
pool.apply_async(worker, args=(i,))
我需要打开多个multi.py
实例,将worker附加到同一个池中。你知道吗
阅读official documentation我无法理解这样做的方法。
我知道我需要一个Manager()
但是我应该怎么用呢?你知道吗
有没有用Python的方式或者任何有工作代码的人对此提出建议?你知道吗
谢谢大家。你知道吗
最后,我使用python3
BaseManager
编写了一个基本的工作示例。请看这里的docs。你知道吗在一个叫做服务器.py地址:
然后在一个或多个脚本中客户端.py地址:
显然,这是一个基本示例,但我认为它提供了在不使用外部库的情况下执行大量复杂工作的功能。你知道吗
今天很多人都指望一个现成的,通常是巨大的重量,图书馆或软件,而不了解基本知识。我不是他们中的一员。。。你知道吗
干杯
相关问题 更多 >
编程相关推荐