什么逻辑流模型用于Nodejs中的事件循环(谷歌浏览器)

很长一段时间,我认为Chrome 和 Node.js 中使用的事件循环实现(libuv?)使用线程。但后来我正在阅读这篇关于 Java 轻量级线程的文章,其中说明了以下内容:

...不是为每个并发任务(和阻塞任务)创建线程,而是一个专用线程(称为事件循环)查看分配给非反应模型中线程的所有任务,并在相同的 CPU 内核。

还有这本书《计算机系统》。并发应用程序一章中的程序员视角指出,现代操作系统提供了三种构建并发程序的基本方法(实现逻辑流的 3 种方法):

  • 流程。通过这种方法,每个逻辑控制流都是一个由内核调度和维护的进程。由于进程具有独立的虚拟地址空间,想要相互通信的流必须使用某种显式进程间通信 (IPC) 机制。

  • I/O 多路复用。这是一种并发编程形式,其中应用程序在单个进程的上下文中显式调度它们自己的逻辑流。逻辑流被建模为状态机,作为数据到达文件描述符的结果,主程序显式地从一个状态转换到另一个状态。由于程序是单个进程,所有流共享相同的地址空间。

  • 线程。线程是在单个进程的上下文中运行并由内核调度的逻辑流。您可以将线程视为其他两种方法的混合体,像进程流一样由内核调度,并像 I/O 多路复用流一样共享相同的虚拟地址空间。

所以现在我想知道事件循环是否属于I/O multiplexing逻辑流并且不使用线程?

以上是什么逻辑流模型用于Nodejs中的事件循环(谷歌浏览器)的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>