Lobsters | 原文链接 | 2026-09-11 收录

async/await 的设计空间:同一个程序,七种运行时给出四种答案

来源: cel.cs.brown.edu — 2026-09-08

概述

布朗大学 Gavin Gray 等人的论文《A Design Space Exploration of Async/Await》指出,各语言的 async/await 差异比想象中大得多。他们用一个「在后台写日志」的极简程序测试七个现代异步运行时,得到四种不同输出,而且在三种变体下没有任何两个运行时结果一致。论文从现代实现里提炼出九个设计维度,分属任务生命周期的开始、结束与取消三个阶段,并把设计空间形式化为核心演算上的语义,用来逐步解释同一段程序为何分叉。

核心要点

金句

一段全部工作只是在后台写一行日志的程序,却有四种不同的输出。而且情况还会更糟。
返回 Lobsters 首页