在异步编程里 future代表一个异步计算 它的表示形式就是 在函数前面加上async标签 那么通过await可以等待 运行时的任务去执行future future背后有poll方法 可以查询future结果 一开始还没输入参数 也就是没执行的时候 自然没有结果 返回的是pending状态 同时poll的上下文中的唤醒器 会被拷贝一份到poll里 一旦future就绪 poll里的唤醒器 来唤醒wake方法就是 通知运行时这个future 可以执行了 来个任务来执行future吧 如果运行结束就返回结果 没有结束就返回pending状态 还可以继续poll查询状态 但是只有最近一次的poll的唤醒器 会被通知去执行 可见调用future的时候 它是惰性的 它本身不会去执行 它依赖唤醒器的wake方法 去通知有进度了 poll就获取结果 这就避免了无限 循环的去查询future 其它编程语言里的异步是怎么运行的你,你知道吗,欢迎交流