多处理Python类对象

时间:2011-04-27 09:05:32

标签: python multithreading parallel-processing

所以我想说我有一个Python类:

class Something:
    def __init__(self, a, b, c):
        initialize_object_with_args()

    def run(self):
        do_something()

    def result(self):
        return result

现在我想要创建该类的多个对象(所有对象都是独立的 - 不需要在对象之间进行数据交换)并在具有多核CPU的单个PC上并行运行它们...唯一改变的是每次运行的输入参数(a,b,c)......

所以我需要这个:

results = []
[PARALLEL START]
    obj = Something(a, b, c)
    obj.run()
    results.append(obj.results())
[PARALLEL END]

然后我可以评估结果!我看到多处理模块将是我需要的,但我不知道具体细节,也不知道它能做我需要的还是如何做?

快速编辑:我需要能够用Python做到这一点......没有外部模块......只是标准的Python安装......

2 个答案:

答案 0 :(得分:0)

查看http://wiki.python.org/moin/ParallelProcessing,尤其是http://pypi.python.org/pypi/pprocess

这个小型库可以完全按照您的要求进行操作:http://honeypot.net/yet-another-python-map

答案 1 :(得分:0)

它似乎与this

非常相似
from multiprocessing import Pool

def func(*args):
    obj = Something(*args)
    obj.run()
    return obj.results()

pool = Pool()
results = pool.map(func, ((1,2,3), (4,5,6)))