Menu Close

Python sleep() – 使线程休眠

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 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 中的数字时钟。


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()

当您运行程序时,输出将类似于:

 Hello
Hello
Hi
Hello
Hi
Hi

上面的程序有两个线程t1t2。 这些线程使用t1.start()t2.start()语句运行。

请注意,t1t2同时运行,您可能会获得不同的输出。

访问此页面以了解有关 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()使线程休眠

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!
评论区评论发表10个有质量的评论,可以联系我们 申请作者权限.

发表回复

您的电子邮箱地址不会被公开。

Leave the field below empty!

Posted in Python教程

Related Posts