代码之家  ›  专栏  ›  技术社区  ›  Adrian Zanescu

异步需要多线程还是并行?

  •  3
  • Adrian Zanescu  · 技术社区  · 14 年前

    3 回复  |  直到 14 年前
        1
  •  4
  •   Randolpho    14 年前

    实际上,是的,可以有在同一线程中执行的异步代码。现在大多数基本的IO实际上是异步的;读和写是在CPU之外请求和处理的,当它们完成时,设置一个标志,然后程序可以寻址这些值。程序在正常处理期间偶尔检查标志的值,并在值指示可用性时进行响应。操作系统通常会为更高级别的程序协调这一点。

    http://en.wikipedia.org/wiki/Asynchronous_I/O

        2
  •  2
  •   Flexo - Save the data dump sunny moon    14 年前

    你完全可以编写异步的,但是单线程的代码。一个例子可能是打开了一堆套接字,使用select和non-blocking IO为不同的“会话”编写小而短的东西,并将它们分成块。这肯定是异步的,这取决于发送的内容和如何控制。

    你也可以在没有网络的情况下做事,但这可能是最微不足道的例子。

        3
  •  0
  •   bnieland    13 年前

    异步很常见的是JavaScript(例如用于web服务),但是几乎所有的JavaScript until now 已经是单线程的。