同一份异步程序七种输出:Async/Await 跨语言差异远超预期

IanArawjo · x · 2026-09-10

Brown 大学认知工程实验室发布论文 《A Design Space Exploration of Async/Await》 并配交互式博客。核心发现:各语言 async/await 设计初衷一致(让并发代码像直线代码),但实际语义差异远超预期。

一个极简的 fire-and-forget 日志程序(后台 spawn 写日志、主流程 sleep 后打印 C),在 7 个现代异步运行时中竟产生 4 种不同输出;论文测试了该程序的 3 个变体,没有任何两个运行时输出完全一致。

论文进一步探讨差异根源,包括 cold/hot async function 等设计空间维度,并梳理 "structured concurrency"(结构化并发)的确切含义。适合想真正理解自己所用水语言异步语义的开发者阅读。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →