博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java io 模型重点讲述
阅读量:5235 次
发布时间:2019-06-14

本文共 481 字,大约阅读时间需要 1 分钟。

java io 模型重点讲述

bio(阻塞)

同步IO 接受请求与处理请求用同一条线程

aio

应用程序线程会向系统注册一个socket请求,以及一个回调方法,继续执行下去。socket接受区的数据监控交给系统,当数据到达接收区,系统就将接收区的数据读到应用程序的缓冲区中,再回调用注册的方法去读取数据。

nio (异步非阻塞)

与aio类似,不同之此在于,aio回调完成事件时,数据已经复制到应该用程序中了(jvm),而noi还需要通过API去系统的接收区中读。接收缓冲区的选用很重要。

缓冲区类型主要有三种:jvm,jvm外,文件映射(mappedbytebuffer)。noi主要选择还是jvm外的缓冲区。
一个好缓冲区的影响性能的因素有:同时读写,动态扩容大小。
它决定了异步通讯的稳定性和高效率性。nio的一个实现框架是netty,他设计了一套接口bytesbuf,compositebytebuf实现类,可以按需求去实现自己的bytesbuf实现类。

转载于:https://www.cnblogs.com/wolf12/p/8988506.html

你可能感兴趣的文章
Mysql出现(10061)错误提示的暴力解决办法
查看>>
【Python学习笔记】1.基础知识
查看>>
梦断代码阅读笔记02
查看>>
selenium学习中遇到的问题
查看>>
大数据学习之一——了解简单概念
查看>>
Lintcode: Partition Array
查看>>
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>
Java实现二分查找
查看>>
架构图-模型
查看>>
黑马程序员_Java基础枚举类型
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
ajax向后台传递数组
查看>>
疯狂JAVA16课之对象与内存控制
查看>>
[转载]树、森林和二叉树的转换
查看>>
软件测试-----Graph Coverage作业
查看>>
django ORM创建数据库方法
查看>>
创建Oracle synonym 详解
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
linux查看端口占用
查看>>