Python 中的非同步程式設計通常涉及不需要立即關注的任務。處理此類任務的一種方法是使用「即發即忘」模式,該模式允許任務同時運行而不會阻塞主執行流程。
在Tornado的協程實作中,可以透過省略yield關鍵字來實現這種模式。然而,從 Python 3.5 開始,async/await 語法需要不同的方法。
根據 asyncio.Task 的 Python 文檔,協程可以是透過使用 asyncio.ensure_future 建立任務來「在後台」執行。此任務將同時運行,不會阻塞該函數。
預設情況下,asyncio 期望任務在事件循環完成之前完成。如果事件循環完成後任務仍在運行,則會發出警告。為了避免此警告,應在事件循環完成後等待所有待處理的任務。
在某些情況下,可能需要取消任務而不是等待任務。這可以使用 task.cancel() 來完成,但需要等待取消的任務才能完成取消。
以上是如何使用 Python 的 Async/Await 實作「Fire and Forget」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!