sleep() 函数在给定的秒数内暂停(等待)当前线程的执行。
Python 有一个名为time的模块,它提供了几个有用的函数来处理与时间相关的任务。其中最受欢迎的功能之一是sleep()。
该sleep()函数在给定的秒数内暂停当前线程的执行。


示例 1:Python sleep()

import time print(“Printed immediately.”) time.sleep(2.4) print(“Printed after 2.4 seconds.”)
下面是这个程序的工作原理:

  • “Printed immediately” 被打印
  • 暂停(延迟)执行 2.4 秒。
  • “Printed after 2.4 seconds” 被打印。

从上面的示例中可以看出,sleep()将浮点数作为参数。
在 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)
在上面的程序中,我们在无限循环中计算并打印了当前本地时间 。然后,程序等待 1 秒。再次计算并打印当前本地时间。这个过程还在继续。
运行程序时,输出将类似于:
02:10:50 下午 02:10:51 下午 02:10:52 下午 02:10:53 下午 02:10:54 下午 …………
这是上述程序的稍微修改的更好版本。
import time while True: localtime = time.localtime() result = time.strftime(“%I:%M:%S %p”, localtime) print(result, end=””, flush=True) print(“\r”, end=””, flush=True) time.sleep(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()
运行程序时,输出将类似于:
你好 你好 你好 你好 你好 你好
上面的程序有两个线程 t1 和 t2. 这些线程使用t1.start()和t2.start()语句运行。
注意, t1 和 t2 同时运行,您可能会得到不同的输出。
访问此页面以了解有关Python 中多线程的更多信息。


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

该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()
上面的程序有两个线程。我们已经使用time.sleep(0.5)和time.sleep(0.75)分别将这两个线程的执行暂停了 0.5 秒和 0.7 秒。
推荐阅读: Python time.sleep() 休眠线程