上一章Python教程请查看:python3时间time模块
sleep()函数在给定的秒数内挂起(等待)当前线程的执行。
Python有一个名为time的模块,它提供了几个有用的函数来处理与时间相关的任务。其中一个流行的函数是sleep()。
函数的作用是:在给定的秒数内挂起当前线程的执行。
示例1:Python sleep()
import time
print("立即打印")
time.sleep(2.4)
print("2.4秒后打印")
下面是这个程序的工作原理:
- “立即打印”被打印出来
- 暂停(延迟)执行2.4秒。
- 打印“2.4秒后打印”。
从上面的例子可以看出,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)
在上面的程序中,我们计算并打印了无限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中的多线程
在讨论多线程程序中的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同时运行,可能会得到不同的输出。
多线程程序中的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()
上面的程序有两个线程,我们已经使用time.sleep(0.5)和time.sleep(0.75)分别将这两个线程的执行挂起0.5秒和0.7秒。
评论前必须登录!
注册