gpt4 book ai didi

python - 为什么我的 python 多进程代码运行速度很慢?

转载 作者:行者123 更新时间:2023-11-30 23:40:37 25 4
gpt4 key购买 nike

# multi-processes
from multiprocessing import Process, Queue
class Worker(object):
def __init__(self, queue):
self.queue = queue
self.process_num = 10 <------------ 10 processes
self.count = 0

def start(self):
for i in range(self.process_num):
p = Process(target = self.run)
p.start()
p.join()

def run(self):
while True:
self.count += 1
user = self.queue.get()
# do something not so fast like time.sleep(1)
print self.count
if self.queue.empty():
break

我使用Worker().start(queue)来启动程序,但是输出没有我预期的那么快(似乎只有一个进程在运行)。

我的代码有问题吗?

最佳答案

是的,您一次只运行一个进程,您正在等待每个进程终止,然后再启动下一个进程;

def start(self):
for i in range(self.process_num):
p = Process(target = self.run)
p.start() <-- starts a new process
p.join() <-- waits for the process to terminate

换句话说,您正在启动 10 个进程,但第二个进程只有在第一个进程终止后才会启动,依此类推。

对于您想要做的事情,最好不要手动使用 Process ,而是使用 Process Pool .

关于python - 为什么我的 python 多进程代码运行速度很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12550601/

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