1 Java I/O:模型与流( 二 )


同步/异步、阻塞/非阻塞,这两组概念其实说的是一个事情 。
同步:用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,比如上厕所这件事,就必须自己亲自干,不能一边上厕所一边逛街;
异步:用户进程触发IO操作以后就可以响应其他的任务请求,而当I/O操作完成时会得到系统通知(异步的特点就是通知) , 比如把衣服丢到洗衣机里你就会去干别的事情了,衣服洗好了洗衣机会通知你取出来;
阻塞:和同步一样 , 在程序完成指定的任务之前,什么都不干,一直等待着,直到完成任务,比如上厕所没坑了,但附近又没有别的卫生间,只好在门口一直等着;
非阻塞:和异步一样 , 不会为了某个任务或事件一直等待而不响应其他请求,比如你可以一边上厕所一边玩手机 。
至于同步阻塞/同步非阻塞/异步阻塞/异步非阻塞 , 无非就是以上概念的变体而已 。
I/O是Java中比较裹人的概念之二,非常枯燥 , 没办法 。看看就行,理解不了那就多敲代码 。
【1 Java I/O:模型与流】

推荐阅读