首先放上一个不使用多线程的小程序留作后期的对照。
from time import sleep
import datetime
def x1():
start_time=datetime.datetime.now()
sleep(5)
end_time=datetime.datetime.now()
print (end_time-start_time).seconds
def x2():
start_time=datetime.datetime.now()
sleep(7)
end_time=datetime.datetime.now()
print (end_time-start_time).seconds
if __name__=='__main__':
start_time=datetime.datetime.now()
x1()
x2()
end_time=datetime.datetime.now()
print 'The main time is',(end_time-start_time).seconds
运行结果:
然后再用一个使用线程的小程序来比较一下,线程的优势
from time import sleep
from multiprocessing.dummy import Pool as ThreadPool
import datetime
import numpy as np
def f(x):
start_time=datetime.datetime.now()
sleep(x)
end_time=datetime.datetime.now()
print (end_time-start_time).seconds
x=np.array([5,7])
if __name__=='__main__':
start_time = datetime.datetime.now()
pool = ThreadPool()
results = pool.map(f,x)
pool.close()
pool.join()
end_time = datetime.datetime.now()
print 'The sum time is',(end_time-start_time).seconds
实验结果: