Python 除了 time.sleep,threading.Event()延时

我们知道,在 Python 里面可以使用time.sleep来让代码暂停一段时间,例如:

import time

print('...部分代码...')
time.sleep(5)
print('...剩下的代码...')

程序首先打印出...部分代码...,然后等待5秒钟,再打印出...剩下的代码...

现在大家想一想,有没有什么办法,在不使用time.sleep的情况下,让程序暂停5秒?

你可能会说,用requests访问一个延迟5秒的网址、或者用递归版算法计算斐波那契数列第36位……这些奇技淫巧。

不过今天我说的,是另外一个东西,threading模块里面的Event

我们来看看它的用法:

import threading

event = threading.Event()
print('...部分代码...')
event.wait(5)
print('...剩下的代码...')

这样一来,程序首先打印出...部分代码...,然后等待5秒钟,再打印出...剩下的代码...

功能看起来跟time.sleep没什么区别,那为什么我要特别提到它呢?因为在多线程里面,它比time.sleep更有用。我们来看一个例子:

import threading

class Checker(
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
除了使用time.sleep之外,Python还有其他一些方法可以实现。 一种常见的方法是使用threading模块中的Event对象。通过调用event.wait(timeout)方法,可以让线程在指定的间内等待,而不是固定的间。例如,可以使用以下代码实现功能: import threading def delayed_execution(): # 这里是需要执行的代码 print('执行操作') event = threading.Event() event.wait(5) # 在这里设置等待间,单位为秒 delayed_execution() event.set() 这样,线程将在等待5秒钟后继续执行操作。可以根据需要调整等待间。 另一种方法是使用asyncio模块中的asyncio.sleep函数。这是一种用于异步编程的方法,可以在协程中使用。以下是一个使用asyncio.sleep的示例: import asyncio async def delayed_execution(): # 这里是需要执行的代码 print('执行操作') async def main(): await asyncio.sleep(5) # 在这里设置等待间,单位为秒 await delayed_execution() asyncio.run(main()) 这里,使用asyncio.sleep函数来实现,同也可以使用async/await语法来编写协程。在main函数中,使用await asyncio.sleep(5)来等待5秒钟,然后再执行操作。 以上是使用Python中的其他方法来实现操作的两个示例。根据具体的需求和情况,可以选择合适的方法来执行代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python 除了 time.sleepthreading.Event()](https://blog.csdn.net/Dome_/article/details/109599020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值