1

我有一个带有方法的类foo(),以及dictionary带有该类的一堆对象的类。

如何foo()在我的对象集合中并行执行 ?

class MyClass:
    def __init__(self,a):
        self.a = a
    def foo():
        self.a+=1
        
if __name__ == "__main__":
    
    #get a dictionary full of independent objects
    dic={}
    for kk in range(10):
        dic[kk]=MyClass(kk)
    
    #execute foo on each object. 
    #How to do it in a parallel way?
    for myObject in dic.values():
        myObject.foo()

pd:这可能是一个愚蠢的问题,在其他编程语言中非常简单,但是我在互联网上进行了谷歌搜索,并没有找到任何直接的解决方案。

4

1 回答 1

0

您没有提供代码示例,所以我会给您一些伪代码,但这应该让您了解如何解决它:

from multiprocessing import Pool

class myClass:
    def foo(x):
        # Do your processing here
        return x

if __name__ == "__main__":

    # Your dictionary here
    some_dict = {"key1": {}, "key2": {}}

    # Create an instance of your class
    my_class = MyClass()

    # Create a pool of workers
    with Pool(5) as p:
        p.map(my_class.foo, [obj for obj in some_dict.values()])
于 2020-11-23T08:16:04.490 回答