【Java】BIO NIO 服务器
来源:互联网 发布:keynote 模板 知乎 编辑:程序博客网 时间:2024/05/25 20:01
BIO,即所谓的面向字节的api。
基本的思路是每一个连接对应一个线程。所以accept以后,就会新建一个线程来处理这个socket。线程里面也是一个while,读取客户端请求,然后相应。这种设计思路很清晰,写起来比较顺,但是性能在高并发的时候有问题,主要是线程太吃资源,但是在低并发情况下还是不错的。
一个改进就是采用线程池,这样可以限制线程数目,只有前面的一些客户端关闭了连接,释放了线程,那么这个线程才能处理其他的连接。
NIO,是java的非阻塞io api。
可以采用一个线程处理多个io。这种模式可以应对高并发,但是编程难度较大,因为一次请求响应被分为了两个周期来处理,所以复杂情况下,需要一些全局的队列来缓存一些东西。事件方面主要有连接和读写两种。每一次注册都有一个key和channel关联,一旦有事件,key会被返回,key里面有发生的事件。每一次处理需要移除key。同时,可能需要修改key里所关心的事件类型。
阅读全文
0 0
- 【Java】BIO NIO 服务器
- java BIO NIO AIO
- Java BIO、NIO、AIO
- java BIO NIO AIO
- java bio & nio
- Java BIO/NIO/AIO
- java bio nio aio
- java nio aio bio
- java nio bio aio
- JAVA AIO BIO NIO
- Java BIO、NIO、AIO
- Java bio nio aio
- Java BIO、NIO、AIO
- JAVA NIO & BIO
- Java nio bio aio
- Java NIO与BIO
- java BIO NIO AIO
- Java BIO、NIO、AIO
- 欢迎使用CSDN-markdown编辑器
- Tile:一个崭新出炉的机器学习语言
- 电信公司拥抱AI苦于招人难,Facebook把自家人才“共享”了出来
- IBM量子计算新突破:成功构建50个量子比特原型机
- 支付宝换上“读心术”AI客服,就为配合双11剁手的你
- 【Java】BIO NIO 服务器
- HTML5 新标签section使用
- 我的规划
- 用qtcreator创建工程时,没有Applications这个选项(Qt Gui应用)
- 科普 | 动态本体简介
- 建立学生信息管理数据库
- 1101PK赛
- sql语句的复习
- js截取字符串