|
|
|
@ -8,10 +8,10 @@ Java中将输入输出抽象称为流,就好像水管,将两个容器连接
|
|
|
|
|
|
|
|
|
|
每个流只能是输入流或输出流的一种,不能同时具备两个功能,输入流只能进行读操作,对输出流只能进行写操作。在一个数据传输通道中,如果既要写入数据,又要读取数据,则要分别提供两个流。
|
|
|
|
|
#### 2、IO模型
|
|
|
|
|
五种IO模型包括:阻塞IO、非阻塞IO、信号驱动IO、IO多路转接、异步IO。其中,前四个被称为同步IO。在网络环境下,可以将IO分为两步:
|
|
|
|
|
1.等;
|
|
|
|
|
五种IO模型包括:阻塞IO、非阻塞IO、信号驱动IO、IO多路复用、异步IO。其中,前四个被称为同步IO。在网络环境下,可以将IO分为两步:
|
|
|
|
|
1.等待数据到来;
|
|
|
|
|
2.数据搬迁。
|
|
|
|
|
所以,如果要想提高IO效率,需要降低等待的时间。
|
|
|
|
|
在互联网应用中,IO线程大多被阻塞在等待数据的过程中,所以,如果要想提高IO效率,需要降低等待的时间。
|
|
|
|
|
##### 2.1 阻塞IO(Blocking I/O)
|
|
|
|
|
在内核将数据准备好之前,系统调用会一直等待所有的套接字(Socket),默认的是阻塞方式。
|
|
|
|
|
|
|
|
|
|