假设线程 A 使用'await' 等待线程 B 上的某些事情完成。当 B 忙于工作负载时,A 被认为已被标记为“暂停点”。A 中的执行流程将继续挂起代码块的“调用者”方法。当 B 完成后,它会通知 A 从暂停点继续。
我的问题是:
为暂停点保留的上下文信息的内容是什么?
上下文信息如何存储?
B如何通知A它的完成?
A的上下文信息是如何恢复的?(我认为一旦 A 的上下文信息被恢复,A 将从暂停点“自然”恢复)
'async' 和 'await' 分别对编译器有什么影响。换句话说,编译器在幕后做了什么特别的工作。