我已经从这篇非常好的文章中阅读了编程的线程模型与异步模型。 http://krondo.com/blog/?p=1209

但是,本文提到以下几点。

  • 只要有I / O,异步程序就会在任务之间切换,从而胜过同步程序。
  • 线程由操作系统管理。

  • 我记得曾经读过,线程是由操作系统通过在Ready-Queue和Waiting-Queue(以及其他队列)之间移动TCB来管理的。在这种情况下,线程也不会浪费时间等待它们?

    鉴于上述情况,异步程序比线程程序有什么优势?

    最佳答案

  • 编写线程安全的代码非常困难。使用异步代码,您可以确切地知道代码将从一个任务转移到下一个任务的位置,因此很难获得竞争条件。
  • 线程消耗大量数据,因为每个线程需要拥有自己的堆栈。使用异步代码,所有代码共享同一堆栈,并且由于在任务之间不断展开堆栈,因此堆栈保持较小。
  • 线程是OS结构,因此是平台要支持的更多内存。异步任务没有这样的问题。
  • 10-08 04:48