乱弹同步与异步,阻塞与非阻塞

同步VS异步

同步(synchronous)和异步(asynchronous)其实是针对消息的发送和接受的次序而言的(在通信中就是消息的发送和接收,在IO中就是数据的读和写)
同步:就是消息的发送和接收是有序的,即接收和发送第二个包一定在第一个包之后第三个包之前,而不是乱序的
异步:就是消息的发送和接收是可以乱序的,第一个包没发完可以直接发第二个包

阻塞VS非阻塞

阻塞(block)和非阻塞(non-block)其实描述的是进程或线程进行等待时的一种方式
阻塞:是等待时进程或线程需要挂起
非阻塞:则是等待时线程或进程不需要被挂起,不影响线程的执行,这时线程或进程可以继续处理其它事物,不因为这个等待而受到影响(当然它仍然在等待这个消息,只不过可能会在线程或进程执行周期的某一个地方去查看消息的通知,而不是立即在原地等待)

Fork me on GitHub