中文
Sign in
AI tools
热门问题
时间线
聊天
Loading AI tools
全部
文章
字典
引用
地图
Remove ads
Async/Async/await
来自维基百科,自由的百科全书
Found in articles
Async/await
在计算机编程中,
async
/
await
模式是一种存在于许多编程语言中的语法特性。这种模式使得异步非阻塞函数逻辑可以用一种类似于同步函数的方式进行构造。在语义上,它与协程的概念相关,且通常也使用类似的技术实现。该模式大都是为了让程序能够在等待一个异步的长耗时操作完成的同时,也可以正常执行代码,它通常表现为Promises或者类似的形式。
Future与promise
与其运算过程解耦,从而允许更灵活地进行计算,特别是通过将其并行化来进行。后来它在分布式计算中得到了应用,用来减少网络通信往返的延迟。再后来
async
/
await
语法机制使其变得更有用,籍此允许以直接风格编写异步程序,而不再采用续体传递风格。 在1976年Daniel P. Friedman和David
协作式多任务
協作式多工排程與
await
在某些語言(例如 JavaScript 或 Python)中交互使用,這些語言的運行時特徵是單執行緒事件循環。這與作業系統合作式多工排程形成對比,因為
await
只限於函數或塊的作用範圍,這意味著在單個函數等待時,程式碼的其他部分可能會並行運行。在大多數現代語言中,
async
和
协程
3.8中被弃用。Python 3.5通过
async
/
await
语法介入了对协程的显式支持。从Python 3.7开始
async
/
await
成为保留关键字。例如: import asyncio import random
async
def produce(queue, n): for
Stackless Python
on扩展。它被用在很多库,比如gevent,用来提供CPython的绿色线程解决方案。Python现在已经接受了对绿色线程的原生解决方案:
async
/
await
。 Stackless Python广泛的使用在大规模多玩家在线游戏Eve Online(英语:Eve