网络编程2-同步异步、阻塞非阻塞
2020-03-12 本文已影响0人
StayHungriest
一、什么是同步异步
1. 同步
例如:程序触发io操作,程序等待或者轮循查看io操作是否完成。
2. 异步
例如:程序触发io操作,程序不管io操作是否完成,继续执行程序,io操作完成后,程序会得到io完成的通知。
二、阻塞和非阻塞
阻塞和非阻塞是针对于进程在访问数据的时候,根据io操作的就绪状态来采取的不同方式。说白了是一种读取或者写入操作方法的实现方式。
1. 阻塞
读取或者写入方法将一直等待。
使用阻塞io时,java调用会一直阻塞到读写完成才返回。
2. 非阻塞
读取或者写入方法会立即返回一个状态值。
使用非阻塞io时,如果不能读写,java调用会马上返回,当io事件分发器通知可读写时再继续进行读写,不断循环直到读写完成。