同步(synchronous)/异步(asynchronous)与阻塞(blocking)/非阻塞(non-blocking)
Asynchronous I/O From Wikipedia, the free encyclopedia
Asynchronous I/O, or non-blocking I/O, is a form of input/output processing that permits other processing to continue before the transmission has finished.
Input and output (I/O) operations on a computer can be extremely slow compared to the processing of data. An I/O device can incorporate mechanical devices which must physically move, such as a hard drive seeking a track to read or write; extremely slow compared to merely moving electrons. For example, during a disk operation that takes ten milliseconds to perform, a processor that is clocked at one gigahertz could have performed ten million instruction-processing cycles.
A simple approach to I/O would be to start the access and then wait for it to complete. But such an approach (called synchronous I/O or blocking I/O) would block the progress of a program while the communications is in progress, leaving system resources idle. When a program makes many I/O operations, this means that the processor can spend almost all of its time idle waiting for I/O operations to complete.
从上面维基百科的解释看,同步I/O和阻塞I/O是一个意思,异步I/O和非阻塞I/O是一个意思,但是,实际文献中存在这四种情况的两两组合,IBM开发者网络上的一篇文章的介绍,应该才是正确的(也可能更上下文语境有关)。