📅  最后修改于: 2020-09-19 14:18:21             🧑  作者: Mango
Python有一个名为时间的模块,该模块提供了一些有用的功能来处理与时间有关的任务。其中最受欢迎的功能之一是sleep()
。
sleep()
函数将当前线程的执行暂停给定的秒数。
import time
print("Printed immediately.")
time.sleep(2.4)
print("Printed after 2.4 seconds.")
该程序的工作原理如下:
"Printed immediately"
打印” "Printed after 2.4 seconds"
打印”。 从上面的示例中可以看到, 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)
要了解更多信息,请访问Python shell中的数字时钟。
在讨论多线程程序中的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
同时运行,您可能会获得不同的输出。
访问此页面以了解有关Python多线程的更多信息。
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秒。
推荐阅读: Python time.sleep()使线程休眠