Skip to content

C#.NET 面试题 中高级篇(二)

async/await 底层源码阅读

  • async、await 内部其实是靠状态机机制实现的。

  • 编译器遇到 await 后会自动构建骨架与状态机,把 await 后面的代码挪到任务完成的后面继续执行。主线程第一次调用 MoveNext 方法时,如果任务已经完成会直接执行后面的操作,否则直接返回,不阻塞主线程的运行。后面的流程将交由线程池来调度完成。

async/await 和同步代码区别

  • async/await 和同步代码中的区别主要包括:执行方式、返回值类型和代码结构。

  • 异步代码通过使用 async/await 关键字来标记,告诉编译器该代码可以异步执行。相比之下,同步代码是按顺序执行的,每一行代码都需要等待前一行代码执行完毕后才能继续执行。

  • 异步代码的主要优势在于能够提高程序的响应性能,特别是在处理 I/O 密集型任务时。同步代码则适用于对时间敏感的操作,因为同步代码执行的速度更可控。

你觉得这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度