我還沒有經歷過node.js的代碼細節。Java NIO非阻塞模式vs node.js異步操作
但是,經過對Node.js中的線程的一些研究,我發現它有單線程接受來自多個客戶端的連接。
當與客戶端連接時,它觸發連接事件並偵聽另一個客戶端,並以異步方式完全工作,並且客戶端請求的休眠操作從線程池執行,結果通過回調被髮送回主線程(接受連接的線程) 。
與Java中的明智NIO還有ServerSocketChannel一樣,SocketChannel可以設置爲非阻塞模式,並且使用選擇器單線程可以監控多個通道。因此,使用NIO ServerSocketChannel,SocketChannel也可以從單線程連接可以異步管理多個客戶端
因此,NIO的非阻塞模式和node.js異步與單線程遵循相同的模式爲單線程的概念?正如他們所說,他們在單線程上執行。
假設異步和非阻塞是類似的模式是常見的誤解。 Node.js也有非阻塞套接字操作。所以是的,這兩個框架都有非阻塞的IO,允許它們處理來自單個線程的多個優勢。 – user568109