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