-2
from multiprocessing.dummy import Pool as ThreadPool
import time
def f(x):
val=x
for i in xrange(100000):
if i!=0:
val*=i
val%=10000
return x
start = time.time()
iter=10000
pool=ThreadPool(8)
res=pool.map(f,xrange(100))
pool.close()
pool.join()
pool=ThreadPool(8)
res2=pool.map(f,xrange(100))
pool.close()
pool.join()
print "Elapsed Time: %s" % (time.time() - start)
以上
是多線程代碼,在我8核心的計算機上運行時,它需要14SPython的多線程行不通
from multiprocessing.dummy import Pool as ThreadPool
import time
def f(x):
val=x
for i in xrange(100000):
if i!=0:
val*=i
val%=10000
return x
start = time.time()
iter=10000
for i in xrange(100):
f(i)
for i in xrange(100):
f(i)
print "Elapsed Time: %s" % (time.time() - start)
以上是單線程代碼,它需要7S 誰能解釋對我來說? 感謝