IO流
文章平均质量分 81
残忍的刀刀
仰天大笑出门去我辈岂是蓬蒿人
展开
-
BIO AIO NIO
jdk1.6及之前都只实现BIO 和 NIOjdk1.7开始支持AIO,即NIO 2.0在BIO阻塞模式下server端:1 new ServerSocket(int port) 监听端口2 serverSocket.accept() 阻塞式等待客户端的连接,有连接才返回Socket对象3 socket.getINputStream() 获取客户端发过来的信息流4转载 2013-03-15 21:12:09 · 1410 阅读 · 3 评论 -
NIO学习笔记(1)--非阻塞I/O
一. 什么是阻塞? 阻塞(Block)这个概念。当进程调用一个阻塞的系统函数时,该进程被置于睡眠(Sleep)状态,这时内核调度其它进程运行,直到该进程等待的事件发生了(比如网络上接收到数据包,或者调用sleep指定的睡眠时间到了)它才有可能继续运行。 我自己是这样理解(同步/异步、阻塞/非阻塞)的: 所谓同步就是当一个进程发起一个函数(任务)调用的时候,一直会原创 2013-03-31 12:32:40 · 3429 阅读 · 0 评论 -
NIO学习笔记(2)--NIO核心类(Selector)
对于上一节中的socket通讯,用以下图来解释NIO的通讯过程:从图中可以明显的看出NIO主要体现在 Channel,Buffer,Selector 这几个类上一. Selector(选择器) 针对SelectableChannel对象的多路复用器。即只针对网络通讯,对文件IO不支持。 可通过调用此类的 open 方法创建选择器,在选择器调用 clo原创 2013-04-08 19:14:26 · 3480 阅读 · 0 评论 -
NIO学习笔记(3)--NIO核心类(Buffer,Channel)
一.Buffer(缓冲区) 概念 缓冲区是包在一个对象内的基本数据元素数组。Buffer 类相比一个简单数组的优点是它将关于数据的数据内容和信息包含在一个单一的对象中。Buffer 类以及它专有的子类定义了一个用于处理数据缓冲区的 API。 所有的缓冲区都具有四个属性来提供关于其所包含的数据元素的信息。它们是:容量(Capacity)原创 2013-04-12 22:14:40 · 1596 阅读 · 0 评论 -
NIO学习笔记(4)-- 【练习】NIO聊天工具
通过NIO的学习,自己简单写了一个,C/S架构的聊天工具。Server端: 1.接受客户端Channel。 2.记录客户端集合clients。利用channel进行区分客户端,后续可以添加一个ID。 3.客户端通过遍历clients,对除发送者以外的所有客户端通讯。Client端: 1.发送请求。 2.接收内容 3.获取控制台内容原创 2013-04-26 17:13:18 · 1324 阅读 · 1 评论 -
异步非阻塞IO的理解
先来说说 阻塞 和 同步的 概念非阻塞 和 异步 反之。以下是自己的看法,表述的通俗一点就是:阻塞: 国庆放假了,我被堵在高速上了,那我们常说这条路阻塞了,而不会说这条路同步了。对吧?阻塞了 我什么干不了了,总不能车不要了吧,那就只能现 在车里睡会,我们称为线程挂起。所以阻塞强调的是一种状态。同步: 最常见的事,警察让先放人质,土匪说先给钱。那就这原创 2013-09-24 17:42:18 · 1133 阅读 · 0 评论 -
http长轮询和短轮询
http 协议介绍: http 协议是请求/响应范式的, 每一个 http 响应都是由一个对应的 http 请求产生的; http 协议是无状态的, 多个 http 请求之间是没有关系的.http 长连接: 目前 http 协议普遍使用的是 1.1 版本, 之前有个 1.0 版本, 两者之间的一个区别是 1.1 支持 http 长连接, 或者叫持久连接.1.0 不支原创 2014-07-07 10:40:52 · 1092 阅读 · 0 评论