在服务http请求方面,基于事件的模型(Node.js)如何比基于线程的模型(Apache)更高效?

在服务http请求方面,基于事件的模型(Node.js)如何比基于线程的模型(Apache)更高效?,node.js,events,Node.js,Events,在apache中,每个传入请求都有一个线程。每个线程占用一个内存空间。内存空间不会相互冲突,因为每个请求都是为了达到它的目的 在node.js中,这是如何发生的,因为它有单线程执行。所有传入请求都使用单个内存空间。为什么请求不互相冲突呢。它们的区别是什么 正如您自己所注意到的,基于事件的模型允许更有效地共享给定内存,因为反复执行堆栈的开销被最小化 然而,要使事件或单线程模型无阻塞,您必须返回到某个线程位置,这就是节点“io引擎”工作的地方 libuv提供了一个API,如果一个IO任务是异步完成的

在apache中,每个传入请求都有一个线程。每个线程占用一个内存空间。内存空间不会相互冲突,因为每个请求都是为了达到它的目的


在node.js中,这是如何发生的,因为它有单线程执行。所有传入请求都使用单个内存空间。为什么请求不互相冲突呢。它们的区别是什么

正如您自己所注意到的,基于事件的模型允许更有效地共享给定内存,因为反复执行堆栈的开销被最小化

然而,要使事件或单线程模型无阻塞,您必须返回到某个线程位置,这就是节点“io引擎”工作的地方

libuv提供了一个API,如果一个IO任务是异步完成的,那么它在下面管理一个进程中的IO任务。使用线程池不会阻塞主进程,而大量javascript操作仍然可以做到这一点(这就是为什么有一个允许生成多个工作进程的模块)

我希望这能回答你的问题,如果你不想发表评论的话