Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Node js单线程工作,但速度有多快?_Java_Javascript_Node.js_Multithreading - Fatal编程技术网

Java Node js单线程工作,但速度有多快?

Java Node js单线程工作,但速度有多快?,java,javascript,node.js,multithreading,Java,Javascript,Node.js,Multithreading,PHP、Java、.Net等通用web平台对一个请求使用线程 CLIENT-------------------------------SERVER Request1 --------------------------> Thread1 ------> Request2 --------------------------> Thread2 ------> GO database, file, etc. Request3 ------

PHP、Java、.Net等通用web平台对一个请求使用线程

    CLIENT-------------------------------SERVER

    Request1 --------------------------> Thread1 ------> 
    Request2 --------------------------> Thread2 ------> GO database, file, etc.
    Request3 --------------------------> Thread3 ------>
我正在阅读NodeJS处理模型。这有点不同。但我有点困惑。请求通过单个线程绑定异步进程

    CLIENT-------------------------------SERVER

    Request1 -------------------------->            Worker1 ----> 
    Request2 --------------------------> Thread-->  Worker2 ----> GO database, file, etc.
    Request3 -------------------------->            Worker3 ---->
多个请求应该比PHP或Java进程慢。因为多个请求绑定单个线程。这是真的吗


第二个问题,是来自工作线程的相同线程givind响应吗?

由于是单线程,node.js一次只能接收或响应一个请求。这并不一定使它比其他语言慢或快,它只是使它不同。相对速度当然取决于每台服务器的编码方式。在一个集群中运行同一nodejs应用程序的多个实例也是可能的(也是常见的),这会导致使用多个线程,从而允许一次接收或响应额外的并发请求。单线程意味着它一次只能做一件事,但编写良好的nodejs代码花费99%以上的时间等待硬件,就像通过内部网连接的数据库一样。单线程实际上更适合这种等待,因为每个等待的连接使用的资源比每个连接使用整个线程的系统少得多。您还可以轻松地对节点进程进行集群,以便让多个线程执行相同的操作,以利用多核CPU、资源调配和负载平衡。