`
- 浏览:
149343 次
- 性别:
- 来自:
上海
-
BIO:Block IO 传统的阻塞模型(ServerSocket/Socket),一个客户端对应一个I/O线程,为同步I/O,使用简单,可靠性非常差,吞吐量低。
伪异步I/O:线程池+阻塞队列。为同步I/O,使用简单,可靠性差,吞吐量中。
非阻塞I/O(NIO):M:1(一个客户端线程(反应器)处理多个客户端连接,然后在调用业务线程进行处理操作,多路复用器轮询可读写数据,执行业务操作,线程池大小由jvm底层决定),非阻塞I/O(客户端连接操作是异步的,可以通过多路复用器注册OP_CONNECT等待后续结果),是同步I/O(I/O多路复用),使用非常复杂,可靠性好,吞吐量高。(linux上底层原理为epoll,存在空轮询bug)。
异步非阻塞I/O(AIO):M:0(不需要启动额外的I/O线程,被动回调),非阻塞I/O,异步I/O,使用复杂,可靠性好,吞吐量高。(JDK1.7之后提供的nio2.0,对应unix网络编程事件驱动的AIO)。
综上,我们可以看出,在并发量和吞吐量高的场合,选择异步非阻塞IO是最佳的选择,但是开发比较复杂。
扩展:
在网络上看到了netty和mima这两个NIO框架,可以降低nio编程的难度,且框架性能优秀,又结合业界的使用情况,社区活跃度、产品成熟度等多方面的考虑,想学习NIO编程的朋友可以看下netty,我近期也会学习netty。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
完成端口是Windows系统中的一种I/O模型,用于提高多线程环境下的网络服务性能,尤其是在高并发场景下。这种模型由Microsoft引入,是Windows系统内核级的异步I/O处理机制,常用于服务器应用程序,如Web服务器、数据库...
虽然XML文档的结构化特性可以提高检索精度,但更细粒度的检索(如元素或段落,而非整个文档)和复杂的评分与排名模型(如结合语言模型和层次推理网络)使得传统的I/O密集型检索应用转变为CPU密集型。 文章提出了一...
BIO( Blocking Input/Output,阻塞I/O)是Java早期提供的I/O模型,它基于同步、阻塞的I/O操作。在BIO模型中,每当一个连接请求到来,服务器都会创建一个新的线程来处理这个请求,直到该请求处理完成才会释放线程。...
异步I/O模型,特别是Boost.Asio的引入,极大地改善了网络应用程序的性能和用户体验。通过非阻塞的方式处理I/O操作,可以有效避免线程阻塞带来的问题,使程序更加健壮和高效。未来随着异步编程技术的不断发展和完善,...
NIO引入了新的抽象组件,包括Buffer、Channels和Selectors等,具有面向缓冲区、基于通道、选择器和多路复用I/O等特性。 知识点一:Buffer(缓冲区) Buffer是NIO中用于存储数据的一种方式,所有的数据交互都要经过...
1. **性能测试**:对比Smart-Socket与其他I/O模型(如NIO、BIO)的性能差异,分析其在不同并发量下的表现。 2. **扩展性研究**:探讨如何利用框架的可扩展性,实现新的协议或功能。 3. **异常处理**:分析框架的错误...
在异步IO中,应用程序可以在发起一个I/O操作后继续执行其他任务,而无需等待I/O操作完成。当I/O操作完成后,会通知应用程序,从而提高了程序的响应性和效率。 #### 总结 Java NIO相对于传统的面向流的I/O模型,在...
IBIS模型是电子行业中用于模拟集成电路芯片I/O(输入/输出)缓冲器电气特性的标准格式,广泛应用于板级信号完整性分析。IBIS模型描述了芯片缓冲器在不同电压、温度条件下的电气行为,但它不涉及具体的物理结构或制造...
对于IC器件的输入、输出和I/O管脚缓冲器的行为特性,IBIS模型通常采用以下形式进行描述: - **输出或I/O管脚缓冲器**: - 在输出为逻辑低时,输出管脚缓冲器的I/V特性。 - 在输出为逻辑高时,输出管脚缓冲器的I/V...
在传统的I/O模型中,如果一个线程进行读写操作时被阻塞,它会一直等待直到操作完成,而NIO则允许线程在I/O操作准备就绪之前进行其他工作,从而提高了系统的并发性能。 在Java NIO中,关键组件包括通道(Channels)...
在IT行业中,Boost.Asio库是一个广泛使用的C++库,特别在开发网络应用程序时,它提供了异步I/O操作的强大支持。Boost.Asio的核心概念是它允许开发者编写并发的、非阻塞的代码,从而提高了程序的性能和可扩展性。本篇...
- 完成端口是一种多线程I/O模型,能够高效地处理大量并发I/O请求,通过将I/O操作的结果通知给工作线程,避免了线程阻塞,提高了系统资源的利用率。 - IOCP的核心优势在于线程复用,它允许多个请求共享一组工作线程,...
IBIS(Input/Output Buffer Informational Specification)是一种用于描述集成电路(IC)器件的输入、输出以及I/O Buffer行为特性的文件标准。该标准旨在为工程师提供一种标准化的方法来描述IC的电气特性,以便于在...
- **Netty的非阻塞I/O模型**:基于JDKNIO框架的Selector实现,利用单个线程可以轮询多个Channel的特点,大大提高了并发处理能力和系统吞吐量。这种模型能够有效地解决传统同步阻塞I/O模型存在的性能瓶颈问题。 2. ...
2. IOCP:I/O完成端口,是Windows系统提供的多线程I/O模型。 3. Socket编程:网络通信的基础,用于创建客户端和服务端的连接。 4. 高并发:项目关注的重点,表示能同时处理大量连接请求的能力。 5. 完整实例:意味着...
15. 进程间通信:详细讨论了几种UNIX进程间通信的机制,如管道、协同进程、命名管道(FIFO)、XSIIPC(包括消息队列、共享内存和信号量)以及这些机制在C/S模型中的应用比较。 16. 网络IPC:套接字:最后一章介绍了...
在那个阶段,Node.js的核心特性包括以下几个方面: 1. 非阻塞I/O模型:Node.js采用事件驱动、非阻塞I/O模型,这使得它在处理高并发请求时表现出色,特别适合构建实时、高性能的网络应用,如聊天服务器、实时数据流...
在IT行业中,网络通信是至关重要的一个领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种最常用的数据传输协议。...在实际项目中,开发者可以根据具体需求选择合适的I/O模型,以达到最佳的系统效率。
1999年末,已经出现几个企业级的SAN方案。现在,各工业组织正在努力消除早期SAN实现存在的互操作性问题,希望提供更广泛的SAN存储和信息管理应用。企业SAN方案必须能够简化繁杂的和重复性的存储管理任务,或者使...