我们知道java中的IO经历了BIO到NIO再到AIO的发展,具体来讲的话BIO是同步阻塞式IO,NIO是同步非阻塞式IO,而AIO是异步非阻塞式IO,前面我们分析了BIO和NIO的用法,至于AIO目前我还没有研究的想法,先把BIO和NIO研究清楚了再说吧,这篇博客我对前面的内容进行总结,如果你没有 ...
分类:
编程语言 时间:
2017-10-13 19:09:26
阅读次数:
162
这篇是讲解NIO的准备篇; 在JDK1.4 NIO出现之前,我们通常用到的IO都是BIO也叫同步阻塞式IO,他是面向流的,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,那么这里的阻塞主要体现在什么地方呢?比如我们从一个文件中读取数据的话,调用InputStream.read()方法,这 ...
分类:
编程语言 时间:
2017-10-13 19:04:43
阅读次数:
275
同步与异步 (1)所谓同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。 要么成功都成功,失败都失败,两个任务的状态可以保持一致。 (2)异步是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行, ...
分类:
其他好文 时间:
2017-10-12 19:03:43
阅读次数:
145
同步、异步:针对发送方阻塞、非阻塞:针对接收方发送方接收方发送方处理接收方处理同步阻塞等待接收方返回等待处理结果返回发送方同步非阻塞等待接收方返回不等待处理结果,去做其他事情异步阻塞不等待接受方返回等待处理结果返回发送方异步非阻塞不等待接受方返回不等待处理..
分类:
其他好文 时间:
2017-09-25 19:03:27
阅读次数:
85
转载至:http://www.cnblogs.com/fanzhidongyzby/p/4098546.html 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO) ...
分类:
其他好文 时间:
2017-09-22 21:15:40
阅读次数:
115
为了解决对共享存储区的访问冲突,Java 引入了同步机制。但显然不够,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止一个。 为解决访问控制问题,Java 引入阻塞机制。阻塞指的是暂停一个Java线程同步的执行以等待某个条件发生(如某资源就绪)。 slee ...
分类:
编程语言 时间:
2017-09-13 15:20:41
阅读次数:
234
1、BIO编程 1.1、传统的BIO编程 网络编程的基本模型是C/S模型,即两个进程间的通信。 服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。 传统的同步阻塞模型开发中,ServerSocket负责绑定I ...
分类:
编程语言 时间:
2017-09-11 18:16:20
阅读次数:
243
水滴石穿 IO 同步阻塞,在未得到服务端数据前会处于等待状态,直接面向IO流 实现方式:一个请求一个线程 NIO 同步非阻塞,不需要返回结果,面向缓冲区(其实只是更改了阻塞的位置) 实现方式:服务端的多路复用机制,轮询机制。 在IO多路复用模型中,事件循环将文件句柄的状态事件通知给用户线程, 由用户 ...
分类:
其他好文 时间:
2017-09-04 18:52:47
阅读次数:
148
一、通过wait()、notify()线程通信来实现 输出结果: 二、通过阻塞队列来解决生产者消费者问题 输出结果: 由输出结果可以看出:“最后阻塞队列中还剩下4个鸡蛋”明显是正确的,可知阻塞队列内部意见实现了同步,不需要我们额外同步,是线程安全的。 ...
分类:
其他好文 时间:
2017-09-02 19:58:23
阅读次数:
151
早上复习了IO、NIO、AIO相关的概念,将其中一些要点记录一下。 从编程语言层面 BIO | NIO | AIO 以Java的角度,理解,linux c里也有AIO的概念(库),这些概念不知道什么原因被炒火起来,这里只从Java角度入手。 BIO,同步阻塞式IO,简单理解:一个连接一个线程 NIO ...
分类:
编程语言 时间:
2017-08-30 09:57:39
阅读次数:
115