Non-blocking IO

Implementing sync and async IO

  • Synchronous I/O:
    • Use Blocking I/O
  • Asynchronous I/O:
    • Use Blocking I/O:
      • must use multi-threading
    • Use Non-blocking I/O:
      • single threaded
      • multi-threaded

Java NIO

  • stands for New Input/Output
  • original java.io blocks IO
  • java.nio allows for non-blocking communication
  • Netty is built on top of Java NIO client server framework