Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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
Javascript NodeJSExpress线程澄清_Javascript_Node.js_Express - Fatal编程技术网

Javascript NodeJSExpress线程澄清

Javascript NodeJSExpress线程澄清,javascript,node.js,express,Javascript,Node.js,Express,我对NodeJS比较陌生,并且已经阅读了它的架构的一些文本 我了解事件循环、主线程V8引擎线程和其他libuv线程。只要主线程需要进行异步处理,它就会将其交给libuv线程,作为回报,它们会将结果添加到事件循环中 我的担心表达过度了。那么谁将http请求插入到事件循环中呢。是否有一个单独的专用线程,或者它是libuv线程之一?实际上,express只是使用nodejs的http API。无论是express、hapi还是其他一些nodejs框架,它们都只是使用nodejs的http/https

我对NodeJS比较陌生,并且已经阅读了它的架构的一些文本

我了解事件循环、主线程V8引擎线程和其他libuv线程。只要主线程需要进行异步处理,它就会将其交给libuv线程,作为回报,它们会将结果添加到事件循环中


我的担心表达过度了。那么谁将http请求插入到事件循环中呢。是否有一个单独的专用线程,或者它是libuv线程之一?

实际上,express只是使用nodejs的http API。无论是express、hapi还是其他一些nodejs框架,它们都只是使用nodejs的http/https api作为基础。事件循环的概念并不是来自nodejs,它起源于javascript,js使用它来处理异步函数,nodejs也是如此。然后对于http请求,与其他异步函数一样,V8将请求委托给nodejs的相关模块,然后再委托给操作系统,当在端口上接收到响应或http请求,从而发送到V8线程时,V8会将回调推送到队列中,并在sysn线程之后等待被调用。

实际上,express只是使用nodejs的http API。无论是express、hapi还是其他一些nodejs框架,它们都只是使用nodejs的http/https api作为基础。事件循环的概念并不是来自nodejs,它起源于javascript,js使用它来处理异步函数,nodejs也是如此。然后对于http请求,与其他异步函数一样,V8将请求委托给nodejs的相关模块,然后再委托给操作系统,当在端口上接收到响应或http请求,从而发送到V8线程时,V8会将回调推送到队列中,并在sysn线程之后等待被调用。

感谢您的澄清,不确定这部分是否在sysn线程之后等待被调用。你是说mainsync线程?Js或NodeJs是单线程语言。所以我认为这不是关于主线程或其他线程的概念,异步线程不是由Js解释器v8引擎处理的。v8只接受回调。抱歉,异步线程指的是libuv的线程。所谓主线程,我指的是V8事件循环线程。我需要了解,libuv确实出现在图片中。操作系统可能不会在V8事件循环中添加回调,libuv的异步线程将侦听操作系统接收到请求的通知,从而在V8事件循环中添加事件。还编辑了该问题。根据您的评论,我指的是V8提供的主菜单感谢您的澄清,不确定此部分是否在sysn线程之后等待被调用。你是说mainsync线程?Js或NodeJs是单线程语言。所以我认为这不是关于主线程或其他线程的概念,异步线程不是由Js解释器v8引擎处理的。v8只接受回调。抱歉,异步线程指的是libuv的线程。所谓主线程,我指的是V8事件循环线程。我需要了解,libuv确实出现在图片中。操作系统可能不会在V8事件循环中添加回调,libuv的异步线程将侦听操作系统接收到请求的通知,从而在V8事件循环中添加事件。还编辑了问题。根据您的评论,我指的是V8提供的主线程