我是 Node 的新手,并尝试了解 node 的非阻塞性质。
在下图中,我创建了请求的高级图表。
据我了解,来自单个用户的单个应用程序的所有进程都在单个线程上运行。
我想了解的是事件循环的逻辑如何适合这个图表。事件循环是否与指令排队的处理器管道相同?
想象一下,我们将一个应用页面加载到 RAM 中,该页面创建一个流以供程序读取:
readstream.on('data', function(data) {});
创建读取流和等待数据发生的指令:该指令是否“挂起”在处理器的寄存器中(等待 I/O 完成),而在多线程环境中,处理器只是不接受新指令直到前一个 I/O 请求的结果返回到 RAM 为止?
还是我认为这完全/部分错误的方式?
只是一个补充(相关的,也许是愚蠢的)问题:在服务器上的不同线程上运行不同的用户,单线程的好处不是只对单个用户有用吗?
我对这种类型的细节不熟悉,所以如果这个问题对你不完全有意义,请原谅。但在继续前进之前,理解这一点对我来说似乎是必不可少的。