我是nodejs的新手。在阅读了几篇文章之后,我了解到nodejs是单线程的。我很惊讶nodejs如何处理多个客户端请求。例如,如果一个用户命中节点服务器,则其他用户请求必须等到它响应第一个客户端请求。请帮助我理解节点在单线程环境中的工作方式。
答案 0 :(得分:1)
当人们说Node是单线程时,他们的意思是只有一个JavaScript代码线程正在执行。但这并不意味着没有其他线程在执行。例如,Node中的大多数I / O默认是异步的,并且会旋转其他线程。
我在这个问题Thread in an event-driven vs non-event driven web server中发布了一个图表,显示了这些线程是如何工作的,而且在大多数情况下,我在该问题中的假设#4似乎也是正确的。