<p>除非线程中有一些等待函数(I/O实现),否则线程不会使函数更快。多处理在理论上会有帮助,但是简单的函数不会从中受益,因为它的开销,所以要小心使用它。对共享变量使用<code>Manager</code>。在</p>
<pre><code>from multiprocessing import Process, Manager, freeze_support
class multiProcess():
def __init__(self, sentences):
self.responseList = Manager().list()
self.processList = []
self.sentences = sentences
def processSentence(self,a0,a1,a2,a3,a4,a5,a6,a7,a8):
reversedValue = a8+a7+a6+a5+a4+a3+a2+a1+a0
return reversedValue
#called by each process
def processFunction(self,asentence):
pro_sentence = self.processSentence(asentence[0],asentence[1],asentence[2],asentence[3],asentence[4],asentence[5],asentence[6],asentence[7],asentence[8])
mytuple = (asentence,pro_sentence)
self.responseList.append(mytuple)
return
def run(self):
for i in range(2):
asentence = self.sentences[i]
p = Process(target=self.processFunction, args=(asentence,))
self.processList.append(p)
p.start()
for pro in self.processList:
pro.join()
return self.responseList
if __name__=="__main__":
freeze_support()
sentences = ['interesting','wonderful']
output = multiProcess(sentences).run()
print(output)
</code></pre>