2 cyril0513 cyril0513 于 2017.01.16 11:44 提问

如何理解java中的阻塞IO

求高手帮我分析下面这一段话到底如何理解?
JDK中明确说明了read,write都是阻塞方法,但是没有实例支撑,无法理解为什么是这样的。
图片说明
求高手给个明白的实例,让我理解上面这段话的意思

2个回答

qq_33750826
qq_33750826   2017.01.16 13:48

你好,很高兴为你解答,首先write方法不是阻塞的,read方法是阻塞的,因为write方法表示写入的意思,写入是我们自己决定的,也就是人为决定的,所以我们想什么时候写就什么时候写,所以他不是阻塞的,因为当我们想写的时候我们就调用它就好了,而read方法就不同了,read表示读取的意思,因为刚才说了write使我们人为决定的,所以read方法根本不知道我们啥时候write,所以read就一直等着我们write,所以它就一直阻塞在那里

Royal_lr
Royal_lr   Ds   Rxr 2017.01.16 14:24

网上找个socket通信的例子就知道了,,serversocket启动后会一直阻塞,直到有客户端连接发送数据,,

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java NIO与阻塞IO的研究
一.java NIO 和阻塞I/O的区别  1. 阻塞I/O通信模型 假如现在你对阻塞I/O已有了一定了解,我们知道阻塞I/O在调用InputStream.read()方法时是阻塞的,它会一直等到数据到来时(或超时)才会返回;同样,在调用ServerSocket.accept()方法时,也会一直阻塞到有客户端连接才会返回,每个客户端连接过来后,服务端都会启动一个线程去处理该客户端的请求。阻
Java中IO理解
Java中IO流的分类: 我们的IO流分成字节流和字符流两种,两者的区别: (1)    读写单位不一样:字节流是以字节(占8个位,int值为0-255)为单位,字符流是以字符(占16位,int值为0-35565)为单位 (2)    处理对象不同:字节流能处理所有的对象,包括文字、图片、音视频文件等,而字符流只能处理字符类型的对象 (3)    字节流在操作的时候本身是不会用到缓冲区的,
Java NIO中的阻塞与非阻塞IO
一、什么是阻塞和非阻塞? 传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write() 时,该线程被阻塞,直到有一些数据被读取或写入, 该线程在此期间不 能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会 阻塞,所以服务器端必须为每个客户端都 提供一个独立的线程进行处理, 当服务器端需要处理大量客户端时,性能急剧下降。  Java NIO 是非阻
Java IO:阻塞/非阻塞式IO、同步/异步IO
转载请注明出处:jiq•钦's technical Blog 本文主要内容转自这篇文章,并在此基础上理解后总结。引言同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blo
Java的网络阻塞 IO 与非阻塞 IO
传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。 Java NIO 是非阻塞模式的。当线程从某通道进行读
理解Java中的IO
粗略列出并理解Java中的IO 引言:     对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务   本文的目录视图如下: Java IO概要    a.Java IO中常用的类      b.Java流类的类结构图 1.流的概念和作用 2.Java IO所采用的模型  : 3.IO流的分类 4.Java IO流对象      1.
JAVA中的IO阻塞
1.同步阻塞IO(JAVA BIO)    在JDK1.4之前,建立网络连接采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Sokcet来对服务端进行通讯,默认情况下服务端需要对每个请求建立一堆县城等待请求,而客户端发送请求后,先咨询服务端是否有线程对应,如果没有则会一直等待或者遭到拒绝请求,如果有的话,客户端会等待请求结束后才继续执行。2.异步阻塞IO(JAVA ...
阻塞式IO和非阻塞式IO
什么是阻塞式IO,什么是非阻塞式IO?区分他们有何用? 使用java的阻塞式IO实现非阻塞式IO。 怎么使用c语言实现非阻塞式socket线程?
java 同步/异步IO和阻塞/非阻塞IO 关系和概念解析
java io模型,及相关同步异步,阻塞非阻塞概念解析
Java阻塞IO的示例代码
1、BIO编程    1.1、传统的BIO编程    网络编程的基本模型是C/S模型,即两个进程间的通信。    服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。    传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作。连接成功后,双方通过输入...