#coding=utf-8import threading #導(dǎo)入threading包from time import sleepimport timedef task1(): sleep(1)def task2(): print ("Task 2 executed." ) sleep(5) print("多線程:")starttime=time.time(); #記錄開始時間threads = [] #創(chuàng)建一個線程列表,用于存放需要執(zhí)行的子線程t1 = threading.Thread(target=task1) #創(chuàng)建第一個子線程,子線程的任務(wù)是調(diào)用task1函數(shù),注意函數(shù)名后不能有()threads.append(t1)#將這個子線程添加到線程列表中t2 = threading.Thread(target=task2)#創(chuàng)建第二個子線程threads.append(t2)#將這個子線程添加到線程列表中for t in threads: #遍歷線程列表 t.setDaemon(True) #將線程聲明為守護線程,必須在start() 方法調(diào)用之前設(shè)置,如果不設(shè)置為守護線程程序會被無限掛起 t.start() #啟動子線程endtime=time.time();#記錄程序結(jié)束時間totaltime=endtime-starttime;#計算程序執(zhí)行耗時print ("耗時:{0:.5f}秒" .format(totaltime)); #格式輸出耗時print('---------------------------')#以下為普通的單線程執(zhí)行過程,不需解釋print("單線程:")starttime=time.time();task1();task2();endtime=time.time();totaltime=endtime-starttime;print ("耗時:{0:.5f}秒" .format(totaltime)); |
結(jié)果:

新聞熱點
疑難解答