可以看到一个是阻塞的,一个是非阻塞的。BlockingSessionAcceptor的采用的是socket的accept,这个是会阻塞的。
而NonBlockingSessionAcceptor采用的session的封装,session.start().complete();session.start()得到的是个future,所以这个异步非阻塞的。
NonBlockingSessionAcceptor:
public synchronized void start() {
if (getAcceptorHandler() == null)
throw new IllegalStateException("acceptor handler is null");
if (isStarted())
return;
ServerSocketChannel channel = null;
try {
channel = ServerSocketChannel.open();
setServerSocketOptions(channel.socket());
counter.set(0);
session.setChannel(channel);
session.start().complete();
} catch (IOException e) {
ChannelUtils.close(channel);
exceptionCaught(e);
}
}

- 大小: 4.9 KB
分享到:
相关推荐
Cindy-3.0b1-src这个版本是Cindy框架的源代码包,对于开发者来说,了解其源码可以帮助深入理解NIO框架的设计原理和实现细节。下面将详细介绍这个框架可能包含的关键知识点: 1. **Java NIO基础**:Cindy是建立在...
通过阅读源码,你可以了解到如何实现几何变换、碰撞检测、光线追踪等图形学基础算法。 Cindy库主要包括以下几个关键部分: 1. **几何数据结构**:Cindy提供了多种数据结构来表示几何对象,如点、线段、多边形等。...
cindy.jar 源码工具包
基于java的开发源码-异步IO框架 Cindy.zip 基于java的开发源码-异步IO框架 Cindy.zip 基于java的开发源码-异步IO框架 Cindy.zip 基于java的开发源码-异步IO框架 Cindy.zip 基于java的开发源码-异步IO框架 Cindy.zip ...
在深入理解Cindy源码之前,我们首先需要对异步I/O的基本概念有所了解。 异步I/O模型与传统的同步I/O模型不同,它允许应用程序在等待I/O操作完成时继续执行其他任务,而不是阻塞在一个操作上。这种方式提高了系统...
同时,Cindy框架的源码是完全开源的,开发者可以通过阅读源码了解异步IO的具体实现细节,并在遇到问题时进行本地调试。源码的开放性也为框架的迭代和优化提供了便利,保证了技术的先进性和社区的活跃参与。 在性能...
5. **Cindy源码分析**:通过阅读和分析Cindy的源码,我们可以深入理解其内部工作原理,包括事件循环的实现、回调机制的调度以及如何优雅地处理并发问题。这对于提升Java并发编程和系统优化的能力非常有价值。 6. **...
Netty、Mina、Cindy都是不错的NIO开源框架,后两者都是在Netty的基础上演化出来的。所以要学习好Java的异步通信框架,这三个都是不可多得的好材料。 本资源仅供学习和参考使用,若要进行开发,请下载相应的Jar包
在源码层面,Cindy可能采用了面向对象的设计模式,通过类和接口来封装各种IO操作和事件处理。同时,为了保持代码的可读性和可维护性,Cindy可能会遵循一定的设计原则,如单一职责原则、开闭原则等,并使用模块化设计...
5. **性能优化**:Cindy在设计时充分考虑了性能优化,例如,通过NIO(New IO)库实现低级别的系统调用,减少系统开销,提高吞吐量。 在实际项目中,Cindy通常用于构建高性能的网络服务。例如,它可以用来创建一个...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
Packages with 71 components for all delphi versions (since D7) to build Windows 32/64 bit applications: VCL controls (labels, buttons, panels, Edits, TabControls, StaticText) with features like ...
Cindy是一个这样的框架,它旨在简化Java中的异步编程模型,提供更好的性能和可扩展性。让我们深入探讨Cindy框架以及Java异步I/O的相关知识点。 ### 1. Java的异步I/O模型 在传统的Java I/O模型中,如BIO(Blocking...
《Cindy组件:全Delphi版本v3.23完整源码详解》 Cindy组件是为Delphi开发者提供的一套强大且美观的界面控件库,特别适用于那些追求个性化和高质量用户界面的项目。在"V3.23 Full Source"版本中,开发者将获得完整的...
5. **兼容性**:Cindy应该兼容Java NIO,同时也可能提供了对Java NIO 2的支持,以便利用Java新版本提供的更多特性。 使用Cindy进行开发时,你可能需要了解以下几个步骤: 1. **创建事件循环(Event Loop)**:这是...
Packages with 76 components for all delphi versions (since D7) to build Windows 32/64 bit applications: VCL controls (labels, buttons, panels, Edits, TabControls, StaticText) with features like ...
delphi 控件,优秀的界面设计工具 TcyBevel: multi colored bevels. - TcyPanel: runtime resize feature, multi colored bevels, gradient and shadow feature. - TcyAdvPanel: like TcyPanel plus wallpaper ...
在这个版本中,OpenSSL提供了许多加密算法,包括对称加密算法(如AES、DES等)、非对称加密算法(如RSA、DSA等)、哈希函数(如MD5、SHA系列等)和数字签名功能。同时,它还支持TLS/SSL协议,提供了X.509证书的处理...
java资源异步IO框架Cindy是一个为Java开发者提供的高性能异步IO操作工具。它主要针对需要处理大量并发IO操作的应用场景,如高性能服务器、网络服务等。异步IO模型允许用户在执行IO操作时不会阻塞线程,从而可以更...