Python 中的協(xié)程是指一種非常輕量級的線程,它可以更高效地實現(xiàn)并發(fā)編程。而協(xié)程中的暫停操作則是一種非常重要的操作,可以讓協(xié)程主動讓出 CPU 來給其他任務(wù)執(zhí)行。Python 的 asyncio 模塊提供了豐富的協(xié)程暫停方法,本文將重點(diǎn)講解通過 asyncio 的 sleep 方法來實現(xiàn)協(xié)程暫停。
import asyncio async def work(): print("Start work") await asyncio.sleep(5) print("Finish work") async def main(): print("Start main") await work() print("Finish main") asyncio.run(main())
在上面的代碼中,我們定義了兩個協(xié)程函數(shù) work 和 main,work 中通過 asyncio.sleep(5) 來實現(xiàn)協(xié)程的暫停,等待 5 秒后才會繼續(xù)執(zhí)行。同時,在 main 函數(shù)中我們使用了 await work() 來調(diào)用 work 函數(shù),等待 work 函數(shù)執(zhí)行完畢后才會繼續(xù)執(zhí)行 main 函數(shù)。
我們通過執(zhí)行 asyncio.run(main()) 來啟動 main 函數(shù),它會自動創(chuàng)建一個事件循環(huán),并運(yùn)行我們的協(xié)程。當(dāng)遇到 await asyncio.sleep(5) 時,協(xié)程會主動讓出 CPU 給其他任務(wù)執(zhí)行,等待 5 秒后才會繼續(xù)執(zhí)行。
總之,通過 asyncio 的 sleep 方法,我們可以很方便地實現(xiàn)協(xié)程的暫停,讓協(xié)程更加靈活地進(jìn)行并發(fā)編程。