结论
先说结论 感想,状态机转变 在最后面。
- kotlin的suspend coroutines,为简化 异步代码 的书写,compiler处理异步回调。
- 程序员注明异步的method ,以 direct call形式编码
- compiler生成 回调,并以 状态机 调用
如视频所说,没有magic。类比于用 中文写程序,中文是宏命令啥的。(个人臆测)
我了解的点
- compiler帮你用 回调书写异步代码
- compiler将你的code,翻译成状态机,来运行、暂停你的代码 。
- 相当于用关键字 suspend、await 告诉compiler,我代码怎么拆分。然后compiler跟你拆成 一段一段的代码,来执行。
不足:
- 没 涉及 coroutines是如何调度的,具体啥线程。VM 的领域知识了吧。
推测
- 细化了异步调用粒度,到 method粒度(其实就是coroutines)
- 实际上Thread run方法,也是method粒度啊
- 算是扩充了 异步调用的方式吧
- Compiler 根据susepnd关键字,给你翻译成 一块一块的代码。
- 所谓程序 加个中间层,啥问题都解决了
- 所谓的non-suspend,确实是non-suspend。因为这套框架 一直在调度 语句块 (携程)。