Java NIO non-blocking mode vs node.js asynchronous operation

前端 未结 2 1617
灰色年华
灰色年华 2021-01-01 17:35

I have not gone through the code detail of node.js .

But, going through some research about thread in Node.js, I found that it has single thread for accepting conne

相关标签:
2条回答
  • 2021-01-01 17:52

    No. Non-blocking means that the operations don't block, and they tell you what they did. Asynchronous means they the operations continue in parallel and call you back when they finish. They are completely different programming paradigms.

    0 讨论(0)
  • 2021-01-01 18:13

    Asynchrony in general, and NIO in particular, are not necessarily backed by single thread, they can be supported by multiple threads to increase performance. However, multithreading requires additional synchronization (not complex, but accurate). Since javascript lacks synchronization utilities, Node.js has to use single thread. Java asynchronous frameworks can use multiple threads.

    Apendix

    Why is Node.js single-threaded by design? From Understanding Node.js:

    "So I don't have to worry about code accessing the same data structures at the same time?"

    You got it! That's the entire beauty of JavaScripts single-threaded/event loop design!

    So the most likely cause of single-threaded design is to please javascript programmers, which, en masse, are not familiar with synchronization concepts.

    0 讨论(0)
提交回复
热议问题