一、NIO应用场景
1、写爬虫
2、做通讯服务器就经常有用,还有些自定义的socket接口什么的。不过现在其实框架很多了。
3、比如游戏服务端
4、与传统IO的优势
在老的IO包中,serverSocket和socket都是阻塞式的,因此一旦有大规模的并发行为,而每一个访问都会开启一个新线程。这时会有大规模的线程上下文切换操作(因为都在等待,所以资源全都被已有的线程吃掉了),这时无论是等待的线程还是正在处理的线程,响应率都会下降,并且会影响新的线程。
而NIO包中的serverSocket和socket就不是这样,只要注册到一个selector中,当数据放入通道的时候,selector就会得知哪些channel就绪,这时就可以做响应的处理,这样服务端只一个线程就可以处理大部分情况(当然有些持续性操作,比如上传下载一个大文件,用NIO的方式不会比IO好。
二、华为NIO架构
1. BIO模型存在的问题
传统同步阻塞通信面临的主要问题如下:
1) 性能问题:一连接一线程模型导致服务端的并发接入数和系统吞吐量受到极大限制;
2) 可靠性问题:由于I/O操作采用同步阻塞模式,当网络拥塞或者通信对端处理缓慢会导致I/O线程被挂住,阻塞时间无法预测;
3) 可维护性问题:I/O线程数无法有效控制、资源无法有效共享(多线程并发问题),系统可维护性差
2. 以Netty为代表的NIO框架已经成熟
1、Netty是业界最流行的NIO框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都是首屈一指的,它已经得到成百上千的商用项目验证,例如Hadoop的RPC框架avro使用Netty作为底层通信框架;很多其他业界主流的RPC框架,也使用Netty来构建高性能的异步通信能力。
2、
相关推荐
01-Java NIO-课程简介.mp4 05-Java NIO-Channel-FileChannel详解(一).mp4 06-Java NIO-Channel-FileChannel详解(二).mp4 08-Java NIO-Channel-ServerSocketChannel.mp4 09-Java NIO-Channel-SocketChannel.mp4 ...
java nio入门学习,两个pdfjava nio入门学习,两个pdf
#资源达人分享计划# java nio从入门到精通的代码详解 主要结合博文进行学习 详情可配合我的博客进行学习 https://blog.csdn.net/weixin_47872288/article/details/120342049
主要介绍了Java NIO实战之聊天室功能,结合实例形式详细分析了java NIO聊天室具体的服务端、客户端相关实现方法与操作注意事项,需要的朋友可以参考下
netty案例,netty4.1基础入门篇零《初入JavaIO之门BIO、NIO、AIO实战练习》 ...
I/O到NIO,技术解释大全,结合实战,绝对的好书,Java技术人员快来下载吧。
介绍JavaNIO框架netty的特点和如何使用等,可以多多学习。
第5章介绍了并行程序设计中常见的 些设计模式以及 些典型的并行算法和使用方法,其中包括重要的JavaNIO和AIO的介绍。第6章介绍了 Java 8中为并行计算做的新的改进, 包括并行流、 CompletableFuture、 StampedLock...
基于JAVA IO, NIO, Netty, 多线程并发实战源码.zip
905.4-2014协议,是交通运输部公路科学研究院起草定制的一个协议标准,它也是基于TCP之上的一个应用层传输协议。 第2章,介绍在Socket编程过程中一些基础知识,让大家建立起对这块知识...想通过实战入门NIO、Netty。
「喜欢的自提」 可以直接运行的代码,里面是我在工作中用来学和和测试的代码,一般是得到想要的测试结果,就直接用于实战项目中...17、BIO、NIO、AIO、Reactor、netty相关学习总结和测试(客户端/服务端通信测试demo)
基于NIO的Netty框架实战-Netty
5.7并行搜索 5.9并行算法:矩阵乘法 5.10准备好了再通知我:网络nio 5.11读完了再通知我:aio 5.9并行算法:矩阵乘法 5.10准备好了再通知我:网络NIO 5.11读完了再通知我:AIO 5并行模式与算法 实战Java高并发程序...
java网络编程包括socket tcp/udp io/nio讲解 http协议 jdbc rmi java的安全框架等知识
Java基础实战教程 模块 说明 dive-in-concurrent 并发相关实战教程 dive-in-design-pattern 设计模式相关实战教程 dive-in-interview Java面试相关 dive-in-io IO/NIO/AIO相关 dive-in-java8 Java8新特性相关 dive-...
疯狂java讲义.第二版.part5.rar(解压需5个文件part1,part2,part3,part4,part5,...本书光盘里包含书中所有事例的代码和《疯狂Java实战演义》的所有项目代码,这些项目可以作为本书课后练习的“非标准答案”。[2]
《Netty 权威指南(第2 版)》适合架构师、设计师、软件开发工程师、测试人员以及其他对JavaNIO 框架、Netty 感兴趣的相关人士阅读,通过《Netty 权威指南(第2 版)》的学习,读者不仅能够掌握Netty 基础功能的使用...
session跨域共享及企业级单点登录解决方案实战 分布式事务解决方案实战 高并发下的服务降级、限流实战 基于分布式架构下分布式锁的解决方案实战 分布式架构实现分布式定时调度 分布式架构-中间件 分布式消息...
面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....
《疯狂Java讲义(附光盘第2版)》光盘里包含书中所有示例的代码和《疯狂Java实战演义》的所有项目代码,这些项目可以作为《疯狂Java讲义(附光盘第2版)》课后练习的“非标准答案”。如果读者需要获取关于课后习题的解决...