同步与堵塞完全是两码事
有人觉得堵塞就是同步,非堵塞就是异步,其实以前我也是这么想的,其实同步与堵塞这完全是两码事,所以写篇文章来说说为什么是两码事,也顺便说说各种组合的可以达到的效果,帮助大家了解底层的原理.
首先需要了解这些概念,OS里面有内核态和用户态两种,程序进行IO操作的时候一般是两步,第一步是IO初始化也就是准备好IO操作,第二步就是真正的IO操作.其中第一步决定同步还是异步,第二步决定堵塞还是非堵塞的,为什么这么说呢,我们以Linux为例来看看这个关键字的组合
-
同步堵塞IO
-
同步非堵塞IO
-
异步堵塞IO
-
异步非堵塞IO
java IO NIO AIO:
Netty入门教程——认识Netty
Linux IO模式及 select、poll、epoll详解
Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
Java NIO:浅析I/O模型
线程池大小设置,CPU的核心数、线程数的关系和区别,同步与堵塞完全是两码事
Java IO主要主要在java.io包下,分为四大块近80个类:
基于字节操作的I/O接口: InputStream和OutputStream
基于字符操作的I/O接口: Writer和Reader
基于磁盘操作的I/O接口: File
基于网络操作的I/O接口: Socket(不在java.io包下)
影响IO性能的无非就是两大因素:数据的格式及存储的方式,前两类主要是数据格式方面的,后两个类是存储方式方面的:本地和网络。所以策划好这两个方面的活动,有助于我们合理使用IO。
序列化:
Java序列化的几种方式以及序列化的作用
Java中的关键字 transient
Java transient关键字使用小记
Java序列化理解与总结
-
序列化方式比较:
网友评论