
Java NIO
文章平均质量分 57
JoesonChan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java NIO——4 在多线程环境下的恶梦之终结
有人说java nio在多线程环境下编程简直就是个恶梦,其实你如果能把握住java nio API的要领,你就可以将之驾驭. 0. 一个 channal 对应一个SelectionKey in the same selector.e.g:SelectionKey sk=sc.register(selector, SelectionKey.OP_READ, hand转载 2014-01-02 21:54:54 · 6038 阅读 · 0 评论 -
Java NIO——5 基于非阻塞编程NIO的例子
之前,写的大多都是一些NIO知识点,没有贴出实例,可能看起来比较晦涩,下面是一个基于非阻塞的nio实例Server:原创 2014-01-08 01:34:44 · 11923 阅读 · 2 评论 -
基于tomcat响应处理模型实现的高并发web服务器
在上一篇博客中,一个简单的AIOweb处理例子,可以看到AIO异步处理,依赖操作系统完成IO操作的Proactor处理模型确实很强大,可以是实现高并发,高响应服务器的不错选择,但是在tomcat中的connector的处理模型还依旧是基于NIO的处理,当然,我认为这可能会在以后的版本进行改进,但另一方面,我更认为AIO的负载控制方面的处理可能是比较难的,因为AIO api并没有提供我们对分配线程组的处理,而只是提供一个线程组,交给操作系统去解决io处理上的问题,所以,这可能会给需要复杂处理的负载均衡带来一定原创 2014-05-11 14:14:31 · 5685 阅读 · 0 评论 -
一个基于AIO实现的简单web服务器
一下是一个基于AIO实现的简单web服务器,这是一个简单例子原创 2014-05-08 00:32:09 · 5893 阅读 · 2 评论 -
Java NIO——2 缓冲区
一、缓冲区基础1、缓冲区并不是多线程安全的。2、属性(容量、上界、位置、标记)capacitylimit 第一个不能被读或写的元素position 下一个要被读或写的元素索引mark 一个备忘位置3、方法操作(1)翻转buffer.flip() 等同于 buffer.limit(buffer.position()).position(0)(2原创 2013-09-08 23:52:44 · 4515 阅读 · 0 评论 -
Java NIO——1 NIO简介
其实,当很多人都在认为Java比C或者C++慢,这首先是由于他是一门介于编译和解析的语言,这可能才是他慢的主要原因。但是近年来Oracle公司一直致力于对Jre的解析算法进行优化,使得这一缺点逐渐在缩短。由此,java的慢的弊端跟落在了java io上,大家都知道,其实java底层是没有io实现的,而他采用的是一种本地接口的方式,通过C或者C++编译产生的动态链接库进行实现的,原本的io是一种st原创 2013-08-28 23:56:29 · 1303 阅读 · 0 评论 -
DatagramChannel使用
DatagramChannel是nio中处理UDP的类,可以使用2种方式:DatagramChannel.receive(ByteBuffer dst)和DatagramChannel.send(ByteBuffer src, SocketAddress target)调用connect()之后,使用read和write.方式一send和receive示例原创 2014-01-04 11:14:39 · 7299 阅读 · 0 评论 -
Java NIO——3 非阻塞与selector
一、选择器基础1、选择器提供选择执行已经就绪的任务的能力,这使得多元 I/O 成为可能。2、您需要将之前创建的一个或多个可选择的通道注册到选择器对象中。一个表示通道和选择器的键将会被返回。选择键会记住您关心的通道。它们也会追踪对应的通道是否已经就绪。当您调用一个选择器对象的 select( )方法时,相关的键集会被更新,用来检查所有被注册到该选择器的通道。您可以获取一个键的集合,从而找到当时已经就绪的通道。通过遍历这些键,您可以选择出每个从上次您调用select( )开始直到现在,已经就绪的通道。原创 2013-12-24 16:34:06 · 6299 阅读 · 1 评论 -
Java NIO——6 基于非阻塞编程UDP NIO的例子
好吧,承接上篇文章,下面给出一个udp不可靠无连接的例子,他的次传送都是一个udp报文,不向上面文章中tcp是基于流的代码:Server:/** * 服务器端 * * @author Joeson * */public class UDPServer{ DatagramChannel channel; Selector selector; publi...原创 2019-10-05 22:37:03 · 3467 阅读 · 4 评论