跳到主要内容

Python sleep() 函数

提示
  1. 暂停执行:Python的sleep()方法可以暂停当前线程的执行指定的秒数,常用于控制程序流程和定时任务。
  2. 应用实例sleep()方法可以用于创建数字时钟,通过循环和暂停来连续显示当前时间。
  3. 多线程中的应用:在多线程程序中,sleep()仅暂停单个线程,而不影响其他线程的执行,使得线程操作更加灵活。

Python有一个名为time的模块,提供了几种处理时间相关任务的有用方法。其中最受欢迎的方法之一是sleep()

sleep()方法将暂停当前线程的执行一定秒数。

示例 1:Python sleep()方法

import time

print("立即打印。")
time.sleep(2.4)
print("2.4秒后打印。")

输出

立即打印。
2.4 秒后打印。

这个程序的工作原理如下:

  • 打印"立即打印"
  • time.sleep(2.4)暂停执行2.4秒。
  • 打印"2.4秒后打印"

在Python 3.5之前,实际暂停时间可能少于time()函数指定的参数。

自Python 3.5起,暂停时间将至少是指定的秒数。

示例 2:在Python中创建数字时钟

import time

while True:
localtime = time.localtime()
result = time.strftime("%I:%M:%S %p", localtime)
print(result)
time.sleep(1)

输出

02:10:50 PM
02:10:51 PM
02:10:52 PM
02:10:53 PM
02:10:54 PM
... ... ...

在上面的示例中,我们在无限while循环中计算并打印了当前的本地时间。

然后,程序等待1秒。再次计算并打印当前的本地时间。这个过程继续进行。

要了解更多,请访问Python shell中的数字时钟

Python中的多线程

在讨论多线程程序中的sleep()方法之前,让我们先讨论进程和线程。

计算机程序是一系列指令。进程是这些指令的执行。

线程是进程的一个子集。一个进程可以有一个或多个线程。

示例 3:Python多线程

本文上面的所有程序都是单线程程序。以下是一个多线程Python程序的示例。

import threading

def print_hello_three_times():
for i in range(3):
print("Hello")

def print_hi_three_times():
for i in range(3):
print("Hi")

t1 = threading.Thread(target=print_hello_three_times)
t2 = threading.Thread(target=print_hi_three_times)

t1.start()
t2.start()

输出

Hello
Hello
Hi
Hello
Hi
Hi

上面的示例有两个线程t1和t2。这些线程是通过t1.start()t2.start()语句运行的。

请注意,t1和t2同时运行,我们可能会得到不同的输出。

要了解更多关于多线程的信息,请访问Python中的多线程

多线程程序中的Python time.sleep()

在单线程程序中,sleep()会暂停线程和进程的执行。

然而,在多线程程序中,该方法会暂停一个线程而不是整个进程。

示例 4:多线程程序中的sleep()

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()

输出

Hello
Hi
Hello
Hi
Hello
Hello
Hi
Hi

上面的程序有两个线程。我们使用了time.sleep(0.5)time.sleep(0.75)分别暂停这两个线程的执行0.5秒和0.7秒。

推荐阅读: Python time.sleep()睡眠线程