首页 > 解决方案 > 并行化一个简单的计算

问题描述

假设我有一个简单的类和其中的一些对象:

class Myclass:

    def __init__(self,a):
        self.a = a

    def square(self):
        self.a = self.a**2

list_of_objects = [Myclass(x) for x in range(10)]

我该如何计算:

for obj in list_of_objects:
    obj.square()

以并行方式?

当然我的课要复杂得多,但语法应该是一样的。

标签: pythonparallel-processing

解决方案


尝试查看 Python 的多处理模块。您可以执行以下操作:

import multiprocessing

procs = []
for obj in list_of_objects:
    proc = multiprocessing.Process(target = obj.square)
    procs.append(proc)
    proc.start()

for proc in procs:
    proc.join()

尽管在这个简单的示例中,由于设置进程涉及的开销,使用多处理会更慢。在这种情况下,当我对其进行计时时,将其序列化会更快。所以,我会尝试实际计时你更复杂的代码,以确保它值得开销。


推荐阅读