simDict={}
def sim(outer,inner, ...):
val= /*do some math*/
simDict[...]=val
def foo():
for outer in xrange(0, limit):
for inner in xrange(outer, limit):
sim(outer,inner, ...)
foo()
from multiprocessing import Pool
p = Pool()
def do_inner(outer, limit):
for inner in xrange(outer, limit):
sim(outer, inner, ...)
def foo():
p.map(do_inner, xrange(limit))
foo()
简单:
这将使用
multiprocessing.Pool
来创建一个工作进程池。在我会用你的问题来解决问题。除非线程之间存在某种数据依赖关系,否则您将需要使用一些更高级的锁定机制,并且必须防止更多的线程陷阱。在
生产者/消费者概念:http://en.wikipedia.org/wiki/Producer-consumer_problem 仅供参考:http://docs.python.org/library/multiprocessing.html
multiprocessing
可能有助于使用,而且在某些特定情况下,如果只使用线程,全局解释器锁也会减慢速度。在相关问题 更多 >
编程相关推荐