2017-05-13 4 views
0

Ich möchte Thread-Pool verwenden, um den Prozess zu beschleunigen. Obwohl bei der Kompilierung kein Fehler aufgetreten ist, wird 'calc eingeben' nicht angezeigt. Ist mein Code korrekt?Python-Thread-Pool

Darüber hinaus, wie Sie den Bildschirm der Shell löschen. Ich habe versucht, die Methoden aus den Webs gesucht, aber sie funktionieren nicht.

Darüber hinaus fand ich Folgendes. Warum?

print x, args, kwargs // Fehler

print (x, args, kwargs) // richtig

Thank you very much.

import numpy as np 
from multiprocessing import Pool, TimeoutError 
import time 

def rand(): 
    return np.random.normal(0, 1, 1) 

class myClass: 
    def __init__(self, a = 6, b = 6.5): 
     self.a = a 
     self.b = b 
     self.pool = Pool(processes=4) 

    def calc(self, i, j): 
     print('entering calc') 
     return self.a**i + self.b**j 

    def compute(self, n): 
     result = [self.pool.apply_async(self.calc, (rand(), rand())) for k in range(n)] 
     return result 

A = myClass() 
r = A.compute(10) 

Antwort

0

Der Grund für den Fehler ist höchstwahrscheinlich, weil in späteren Versionen von Python (Python 3.x d.h) print-Anweisungen Klammern erfordern