NIO&BIO
NIO与BIO的源码解析
笑吥语
这个作者很懒,什么都没留下…
展开
-
BIO(二)、ServerSocket的accept()方法
BIO(二)、ServerSocket的accept()方法accept()方法的源码public Socket accept() throws IOException { if (isClosed()) throw new SocketException("Socket is closed"); if (!isBound()) throw new SocketException("Socket is not bound y原创 2020-05-24 15:09:56 · 1797 阅读 · 0 评论 -
BIO(一)、ServerSocket的bind()方法
BIO(一)、ServerSocket的bind()方法BIO是同步阻塞的IO方式。同步/异步是操作系统级别:操作系统在收到程序的IO请求之后,如果IO资源没有准备好的话,如何响应给程序?同步异步操作系统在IO资源准备好之前不响应给程序先返还给程序一个标志,这个标志用于当IO资源准备好后通过事件机制发送的内容应该到什么地方阻塞/非阻塞是程序级别:程序在向操作系统进行IO请求时,如果IO资源未准备好,程序应该如何处理?阻塞非阻塞程序什么都不做,一直等待I原创 2020-05-24 13:16:07 · 3303 阅读 · 0 评论 -
Channel(二):可被多路复用的的能力
NIO的Channel可被多路复用的能力Selector根据Channel的状态来分配任务,所以Channel使用register(Selector,int,Object)方法将自己和相应的状态注册到Selector中。register方法会返回一个SelectionKey来代表这Channel在Selector上的状态。事实上最终是将SelectionKey注册到Selector上。1、注册使用Channel的register(Selector,int,Object),并返回注册成功的Selectio原创 2020-05-11 20:43:56 · 1408 阅读 · 0 评论 -
Channel(一):可中断的能力
NIO的Channel可中断的能力解读AbstractInterruptibleChannel类:可中断Channel的基本实现类public abstract class AbstractInterruptibleChannel implements Channel, InterruptibleChannel{1、AbstractInterruptibleChannel实现了Channel和InterruptibleChannel接口1)、public interface Channe原创 2020-05-11 17:09:44 · 420 阅读 · 0 评论