Java NIO 非阻塞模式与节点.js异步操作
2022-09-02 22:29:29
我还没有浏览node的代码细节.js。
但是,通过对Node.js中的线程进行一些研究,我发现它具有单个线程来接受来自多个客户端的连接。
当与客户端连接时,它触发连接事件并侦听另一个客户端,并以异步方式完全工作,客户端请求的休息操作从线程池执行,结果通过回调发送回主线程(接受连接的线程)。
与Java NIO中的明智一样,ServerSocketChannel,SocketChannel可以设置为非阻塞模式,并且使用选择器单线程可以监视多个通道。因此,使用NIO ServerSocketChannel,SocketChannel也可以从单线程的连接异步管理多个客户端
那么,NIO的非阻塞模式和节点.js异步与单线程是否遵循与单线程概念相同的模式?正如两者都说的那样,它们在单个线程上执行。