标签目录:NIO

以下是与标签 “NIO” 相关联的文章

Proactor和reactor,水平触发和边缘触发

IO分类 同步阻塞 同步非阻塞 多路复用 基于信号的IO 异步IO Reactor 同步阻塞 同步非阻塞 多路复用 基于信号的IO Proactor 异步IO 水平触发 pool, select 边缘触发 epool Reactor和Proactor http://www.cnblogs.com/dawen/archive/2011/05/18/2050358.html 1、标准定义 两种I/O多路复用模式:Reactor和Proactor 一般地,I/……

Netty和Jetty线程模型的对比

Netty boss线程池,前端每个端口一个boss线程,负责accept事件。 worker线程池,固定数量,默认是处理器数量的2倍,每个线程一个select对象,负责read&write事件,并进行handler的执行。 executor,可选,在有长事务的时候,workder线程会返回,将SocketChannel交给executor。 Jetty 2 accept线程:负责处理accept事……

Mina和Netty区别之小结

1. 二者buffer分配方式和分配算法不同。 mina使用heapbytebuffer,每次使用bytebuffer.allocate去分配。同时根据『满则增大一倍,两次一半则缩减一半』。这很大程度上使mina的buffer抖动多,影响io吞吐量。 netty使用directbytebuffer,同时有buffercache的存在,在buffersize不变的情况下,重复使用。分配大小依赖buffe……

【转载】【经典】Netty和Mina性能测评与分析暨Buffer分配策略对比

原文连接:流行NIO框架Netty和Mina性能测评与分析 测试方法 采用Mina和Netty各实现一个基于NIO的EchoServer,测试在不同大小网络报文下的性能表现。   测试环境 客户端-服务端: model name: Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz cache size: 6144 KB cpu cores: 4 jdk: 1.6.0_30-b12 network: ……

Memcache的三种Java客户端的对比和选择

Memcache作为一个著名的缓存项目支持多种语言和多种形式的客户端,作为一个Java开发人员,我们必须了解各种客户端的不同,这有利于我们在技术选型的时候充分的评估其优缺点,从而选择最佳的缓存产品以及缓存客户端,最终对技术选型进行合理的决策。 1.官方提供的基于传统阻塞io由Greg Whalin维护的客户端memcached client……

Redis为什么是单线程?

1. Redis基本是内存操作,在IO和网络操作的时候,多线程的程序可以很好的利用CPU时间。那在基本是内存操作的情况下,单线程程序应该可以充分利用CPU时间了。 2. 由于是内存操作,所以用户响应时间很短。 我们知道Redis是用”单线程-多路复用IO模型”来实现高性能的内存数据服务的,这种机制避免了使用锁,但是……

Redis vs. Memcache

Redis   服务器端: 非阻塞IO,单线程,适合短小的操作逻辑,有复杂的长逻辑会影响性能,对于长逻辑应该配置多个实例来提高多核CPU的利用率, 也就是可使用单机器多端口来配置多个实例,官方推荐一台机器使用8个实例,基于libevent中关于epoll的两个文件加上自己简单实现的事件通知, 设计的简单小巧,作者的思想就是……

IO多路复用技术

当下,在Java服务器编程领域,NIO可谓是无处不在,大家在做技术方案时也是无处不谈及NIO,但是真正要理解NIO,需要上升到操作系统层面,在操作系统层面才能体会到什么是NIO,而要理解NIO,则需要首先理解什么是IO多路复用技术,因为在绝大多数的Java服务器领域,当下使用的仍然是IO多路复用技术,尽管AIO也初露头角,但是……