📜  python代码等待 - Python(1)

📅  最后修改于: 2023-12-03 14:46:42.521000             🧑  作者: Mango

Python代码等待

在编写 Python 程序时,我们有时需要等待一些操作的完成,例如读取文件、网络请求等。为了避免程序在等待操作完成时出现“假死”现象,我们可以使用 Python 提供的等待机制。本文将为您介绍几种常用的等待方式。

1. time.sleep()

Python 内置的 time.sleep() 函数可以让程序等待一定的时间:

import time

print("Start")
time.sleep(3)  # 等待3秒
print("End")

输出:

Start
(等待3秒)
End

time.sleep() 的缺点是需要手动设置等待的时间,可能会影响程序的性能。如果等待时间过短或过长,都会对程序的运行效率产生影响。

2. threading.Timer()

使用 threading.Timer() 函数可以在一定时间后自动执行指定的函数:

import threading

def callback():
    print("Hello, World!")

t = threading.Timer(3, callback)  # 等待3秒
t.start()

输出:

(等待3秒)
Hello, World!

threading.Timer() 的好处是可以避免等待时间过长或过短的情况,还可以在等待的同时进行其它操作。

3. asyncio.sleep()

使用 Python 的协程库 asyncio 可以实现异步等待:

import asyncio

async def main():
    print("Start")
    await asyncio.sleep(3)  # 等待3秒
    print("End")

asyncio.run(main())

输出:

Start
(等待3秒)
End

asyncio.sleep() 可以让程序在等待的同时执行其它协程,十分适合异步编程。

4. concurrent.futures

Python 提供的 concurrent.futures 模块可以实现多线程等待:

import concurrent.futures

def task():
    print("Hello, World!")
    return "Done"

with concurrent.futures.ThreadPoolExecutor() as executor:
    futures = [executor.submit(task) for _ in range(3)]
    for future in concurrent.futures.as_completed(futures):
        print(future.result())

输出:

Hello, World!
Hello, World!
Hello, World!
Done
Done
Done

concurrent.futures 可以让程序并发执行多个任务,提高程序的效率。