As we know, in Java there are 3 I/O modes: Block IO, Non-block IO, Async IO. The IO mode in programming language is actually underlying the OS level implementation.
In Linux(Unix) there are 5 IO modes:
- Blocking IO
- Nonblocking IO
- IO Multiplexing
- Signal driven IO
- Asynchronous IO
Before talk about the IO modes, let’s review the concept of IO. THe IO is short of Input/Output from CPU’s perspective: read/write data from local device (HDD, USB device…), remove device (the network). To simplify, let’s see the example that read/write a file from local HDD.
Blocking IO

Nonblocking IO

IO Multiplexing

Signal driven IO

Asynchronous IO
