1.函數(shù)名及其來源
time.sleep() 函數(shù)命名來源于英文單詞time(時間)和sleep(睡眠)盅粪。
time 是python帶的非內置庫促煮,使用時需要import,主要用于處理和時間相關的操作。
time.sleep用于給定時間內掛起(等待)當前線程的執(zhí)行。
time.sleep() 函數(shù)的例子:
import time
for i in [1,3,5,7,9]:
time.sleep(2)
print(str(i))
可以注釋掉time.sleep(2)再運行一次對比一下
import time
for i in [1,3,5,7,9]:
# time.sleep(2)
print(str(i))
可以看到雖然都是打印出一樣的結果,但time.sleep()加入了等待時間
這里還要解釋一下python中線程與進程的區(qū)別。
- 進程:計算機程序是指令的集合辜限,進程是這些指令的執(zhí)行,包含了進程的資源(寄存器严蓖、堆棧薄嫡、上下文)。
- 線程是進程的子集颗胡,一個進程可以有一個或多個線程毫深。
舉個例子,廚房做菜看成是一個進程毒姨,那么這個進程下面就可能有多個人或一個人(cpu基本執(zhí)行單元哑蔫,即線程)來執(zhí)行,多個人可以分別洗菜弧呐,刷碗闸迷,擺盤等等同時作業(yè),他們又是共享這個廚房的資源的俘枫。每個人存在一定的資源競爭關系腥沽,比如爐火只有1個。
這里time.sleep是針對線程執(zhí)行的鸠蚪,也就是其中一個人去sleep睡覺了今阳,不影響其他人的繼續(xù)工作师溅。
import threading # 操作線程的庫
import time
def print_hello():
for i in range(4):
time.sleep(0.5)
print("Hello")
def print_hi():
for i in range(4):
time.sleep(0.7)
print("Hi")
t1 = threading.Thread(target=print_hello)
t2 = threading.Thread(target=print_hi)
t1.start()
t2.start()
2.函數(shù)定義源碼及其用法拆解
time.sleep(t)
參數(shù)
- t -- 推遲執(zhí)行的秒數(shù)。
該函數(shù)沒有返回值盾舌。
import time
print ("Start : %s" % time.ctime()) # time.ctime()用于獲取當前時間
time.sleep( 5 )
print ("End : %s" % time.ctime())
結果類似如下:
Start : Thu Jan 2 10:16:48 2020
End : Thu Jan 2 10:16:53 2020
可以看到秒數(shù)相差了5
3.版本差異
無
4.學習建議
time.sleep()常用于推遲執(zhí)行的場景
在python中墓臭,與時間相關的模塊有:time,datetime以及calendar
對基礎運行環(huán)境有疑問的妖谴,推薦參考:python函數(shù)深入淺出 0.基礎篇