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)
above is the multithread code,when run in my 8 core computer,it takes 14s
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)
above is the single thread code,it takes 7s can anyone explain it to me? thanks