sleep()函数在给定的秒数内挂起(等待)当前线程的执行。
Python有一个名为time的模块,该模块提供了一些有用的功能来处理与时间有关的任务。其中一种常用的函数是sleep()。
sleep()函数将当前线程的执行暂停给定的秒数。
import time print("立即打印") time.sleep(2.4) print("2.4秒后打印")
该程序的工作原理如下:
"立即打印" 被输出
暂停(延迟)执行2.4秒后。
打印输出"2.4秒后打印" 。
从上面的示例中可以看到,sleep()以浮点数作为参数。
在Python 3.5之前,实际的暂停时间可能小于为time()函数指定的参数。
从Python 3.5开始,暂停时间将至少为指定的秒数。
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1)
在上面的程序中,我们计算并打印了无限while循环内的当前本地时间 。然后,程序等待1秒钟。同样,将计算并打印当前的本地时间。这个过程继续进行。
当您运行程序时,输出将类似于:
02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM ... .. ...
这是上述程序的稍作修改的更好的版本。
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)
在讨论sleep()多线程程序之前,让我们谈谈进程和线程。
计算机程序是指令的集合。进程就是这些指令的执行。
线程是进程的子集。一个进程可以具有一个或多个线程。
本文上面的所有程序都是单线程程序。这是一个多线程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同时运行,您可能会获得不同的输出。
sleep()函数将当前线程的执行暂停给定的秒数。
如果是单线程程序,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秒。