2011-04-27 116 views
0

所以我讓說,我有一個Python類:多處理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安裝做到這一點...

回答

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))) 
+0

如果Python的3.2是一個選項,然後'concurrent.futures'可以提供一些好處作爲一個稍高的級別(儘管它仍然使用多處理) – ncoghlan 2011-04-27 13:31:47