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