
Python 的 time.sleep() 方法
如何实现时间延迟
Python 的 time.sleep() 方法可以将正在执行的程序挂起指定的时间秒数。这个方法实现的程序暂停时间可能比实际需求指定的时间短,因为任何信号捕捉的进程都可能对 sleep() 的执行造成影响;同样,实际挂起的时间也可能比实际需求指定的时间长,主要原因是系统的任务调度进程不能精确的控制挂起时长。
import time
time.sleep(5) #挂起(延迟)5秒钟
执行例子程序,会在5秒后结束。
sleep() 方法的参数是小数,所以可以设定程序暂停小数秒数。
import time
time.sleep(1.500)
运行例子代码,程序将在1秒500毫秒之后结束。
- time.sleep(1) # 挂起1秒
- time.sleep(60) # 挂起1分钟
- time.sleep(3600) # 挂起1小时
无限循环中的时间延迟
下面是一个每隔5秒钟完成某个事务的例子。
import time
while True:
print("每5秒输出一次此消息")
time.sleep(5) # 延迟5秒
上面的例子是一个无限循环(死循环),需要最后强制结束程序。
用 sleep 实现倒计时
下面是一个倒计时的例子,使用 sleep 方法每次延时 1 秒钟。
import time
wait = 10
while wait > 0:
print(wait)
time.sleep(1)
wait = wait - 1
线程和 sleep
线程一般包含在进程中,一个进程可能包含多个线程,这些线程共享这个进程的内存和状态。
下面是一个 sleep() 和多线程的例子。
import time
from threading import Thread
class Main_Thread(Thread):
def run(self):
for x in range(100, 104):
print(x, " - 主线程")
time.sleep(5)
class Service_Thread(Thread):
def run(self):
for x in range(1, 16):
print(x)
time.sleep(1)
Main_Thread().start()
Service_Thread().start()
输出
100 – 主线程
1
2
3
4
5
101 – 主线程
6
7
8
9
10
102 – 主线程
11
12
13
14
15
103 – 主线程
time.sleep 方法的精确性
time.sleep(秒数) 不是真实的时间,time.sleep() 方法只是利用操作系统的 sleep() 函数,有时在毫秒级别可能会被关闭。大部分的个人电脑的时间控制在 1-10毫秒,操作系统并不规范。对于这样的操作系统, time.sleep() 仅仅是指示性的。这个方法并不是很好的时间机制,但是能够适应很多的应用场合。除非要求很细小的时间延迟,否则可以忽略这个不足。
import time
sleep_start = time.time()
for cnt in range(0,10):
print(cnt)
time.sleep(1) # 1 sec delay
sleep_end = time.time()
diff = sleep_end - sleep_start
print("循环时间 :",diff)
输出

【编程】Python 随机数
【编程】Python 异常处理
【编程】Python 日期和时间
【编程】Python 多线程套接字
【编程】Python 套接字
【编程】Python FTP
【编程】Python 网页
【编程】Python 访问Web
【编程】Python IP地址
【编程】Python 主机名