企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Python `sleep()` > 原文: [https://www.programiz.com/python-programming/time/sleep](https://www.programiz.com/python-programming/time/sleep) #### `sleep()`函数在给定的秒数内挂起(等待)当前线程的执行。 Python 有一个名为[`time`](/python-programming/time "Python time Module")的模块,该模块提供了一些有用的函数来处理与时间有关的任务。 其中最流行的函数之一是`sleep()`。 `sleep()`函数在给定的秒数内暂停当前线程的执行。 * * * ## 示例 1:Python `sleep()` ```py 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 创建数字时钟 ```py import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1) ``` 在上面的程序中,我们在[无限循环](/python-programming/while-loop)内计算并打印了当前本地时间。 然后,程序等待 1 秒钟。 同样,将计算并打印当前本地时间。 这个过程继续进行。 当您运行程序时,输出将类似于: ```py 02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM ... .. ... ``` 这是上述程序的稍作修改的更好的版本。 ```py 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 中的[数字时钟](https://stackoverflow.com/questions/37515587/run-a-basic-digital-clock-in-the-python-shell)。 * * * ## Python 中的多线程 在讨论多线程程序中的`sleep()`之前,让我们讨论一下进程和线程。 计算机程序是指令的集合。 流程就是这些指令的执行。 线程是进程的子集。 一个进程可以具有一个或多个线程。 * * * ### 示例 3:Python 多线程 本文上面的所有程序都是单线程程序。 这是一个多线程 Python 程序的示例。 ```py 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() ``` 当您运行程序时,输出将类似于: ```py Hello Hello Hi Hello Hi Hi ``` 上面的程序有两个线程`t1`和`t2`。 这些线程使用`t1.start()`和`t2.start()`语句运行。 请注意,`t1`和`t2`同时运行,您可能会获得不同的输出。 访问此页面以了解有关 [Python](https://stackoverflow.com/questions/2846653/how-to-use-threading-in-python) 中的多线程的更多信息。 * * * ## 多线程程序中的`time.sleep()` `sleep()`函数将当前线程的执行暂停给定的秒数。 对于单线程程序,`sleep()`暂停线程和进程的执行。 但是,该函数在多线程程序中挂起线程而不是整个进程。 * * * ### 示例 4:多线程程序中的`sleep()` ```py 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()`](https://stackoverflow.com/questions/92928/time-sleep-sleeps-thread-or-process)使线程休眠