Node.js 多线程-节点js效率vs Apache
据我所知,NodeJS在内部处理线程。所以,如果一个HTTP请求进入,并且需要一些密集的I/O操作,节点就会产生另一个线程来处理I/O操作,同时继续在其主线程中侦听传入的HTTP请求。另一方面,在Apache上运行的PHP中,每个HTTP请求都有自己的线程来处理它。总之,在这两种情况下都有两个线程在运行,对吗?那么,与Apache相比,node的性能提高了多少呢?在基于事件的服务器(如node或大多数现代Java EE服务器)中,单个(或几个线程)轮流为许多其他不相关的客户端连接在一个线程上的工作提供服务。这种共享/合作的管理方式可以采取多种形式(例如,某些语言中的coutroutines、严密管理的状态机和某些服务器中的continuation processing),但净收益是:Node.js 多线程-节点js效率vs Apache,node.js,multithreading,apache,event-loop,Node.js,Multithreading,Apache,Event Loop,据我所知,NodeJS在内部处理线程。所以,如果一个HTTP请求进入,并且需要一些密集的I/O操作,节点就会产生另一个线程来处理I/O操作,同时继续在其主线程中侦听传入的HTTP请求。另一方面,在Apache上运行的PHP中,每个HTTP请求都有自己的线程来处理它。总之,在这两种情况下都有两个线程在运行,对吗?那么,与Apache相比,node的性能提高了多少呢?在基于事件的服务器(如node或大多数现代Java EE服务器)中,单个(或几个线程)轮流为许多其他不相关的客户端连接在一个线程上的工
- 没有上下文切换,因为不同的线程恢复了生命
- 不需要/几乎不需要线程同步
- 更大的垂直可扩展性
- 更复杂的开发
- 某些错误的代码/扩展可能导致数千个请求暂停的风险