当前位置: 首页 > news >正文

手机网站建设多少钱做教师知识网站有哪些

手机网站建设多少钱,做教师知识网站有哪些,哈尔滨网页设计师招聘,深圳外贸网站建设公司【JavaGuide面试总结】Java IO篇1.有哪些常见的 IO 模型?2.Java 中 3 种常见 IO 模型BIO (Blocking I/O)NIO (Non-blocking/New I/O)AIO (Asynchronous I/O)1.有哪些常见的 IO 模型? UNIX 系统下, IO 模型一共有 5 种: 同步阻塞 I/O、同步非阻塞 I/O、…

【JavaGuide面试总结】Java IO篇

  • 1.有哪些常见的 IO 模型?
  • 2.Java 中 3 种常见 IO 模型
    • BIO (Blocking I/O)
    • NIO (Non-blocking/New I/O)
    • AIO (Asynchronous I/O)

1.有哪些常见的 IO 模型?

UNIX 系统下, IO 模型一共有 5 种: 同步阻塞 I/O同步非阻塞 I/OI/O 多路复用信号驱动 I/O异步 I/O


2.Java 中 3 种常见 IO 模型

BIO (Blocking I/O)

BIO 属于同步阻塞 IO 模型

同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到内核把数据拷贝到用户空间

图源:《深入拆解Tomcat & Jetty》

在客户端连接数量不高的情况下,是没问题的。但是,当面对十万甚至百万级连接的时候,传统的 BIO 模型是无能为力的。因此,我们需要一种更高效的 I/O 处理模型来应对更高的并发量。

NIO (Non-blocking/New I/O)

Java 中的 NIO 于 Java 1.4 中引入,对应 java.nio 包,提供了 Channel , SelectorBuffer 等抽象。NIO 中的 N 可以理解为 Non-blocking,不单纯是 New。它是支持面向缓冲的,基于通道的 I/O 操作方法。 对于高负载、高并发的(网络)应用,应使用 NIO 。

Java 中的 NIO 可以看作是 I/O 多路复用模型。也有很多人认为,Java 中的 NIO 属于同步非阻塞 IO 模型。

我们先来看看 同步非阻塞 IO 模型

图源:《深入拆解Tomcat & Jetty》

同步非阻塞 IO 模型中,应用程序会一直发起 read 调用,等待数据从内核空间拷贝到用户空间的这段时间里,线程依然是阻塞的,直到在内核把数据拷贝到用户空间。

相比于同步阻塞 IO 模型,同步非阻塞 IO 模型确实有了很大改进。通过轮询操作,避免了一直阻塞。

但是,这种 IO 模型同样存在问题:应用程序不断进行 I/O 系统调用轮询数据是否已经准备好的过程是十分消耗 CPU 资源的。

这个时候,I/O 多路复用模型 就上场了。

IO 多路复用模型中,线程首先发起 select 调用,询问内核数据是否准备就绪,等内核把数据准备好了,用户线程再发起 read 调用。read 调用的过程(数据从内核空间 -> 用户空间)还是阻塞的。

IO 多路复用模型,通过减少无效的系统调用,减少了对 CPU 资源的消耗🦌

Java 中的 NIO ,有一个非常重要的选择器 ( Selector ) 的概念,也可以被称为 多路复用器。通过它,只需要一个线程便可以管理多个客户端连接。当客户端数据到了之后,才会为其服务。

AIO (Asynchronous I/O)

AIO 也就是 NIO 2。Java 7 中引入了 NIO 的改进版 NIO 2,它是异步 IO 模型。

异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作。

最后,来一张图,简单总结一下 Java 中的 BIO、NIO、AIO

http://www.dtcms.com/a/462194.html

相关文章:

  • h5 网站开发流程深圳做网站网络公司有哪些
  • 做网站封面要怎么做建立公司网站多少钱
  • 冰箱的冰霜来源 预防冰霜指南。不要用金属刀具除冰,正确除冰是断开电源,打开冰箱门。快转给家人……
  • Java Spring “事务” 面试清单(含超通俗生活案例与深度理解)
  • 【计算机网络原理】选择题
  • 电影网站开发源代码免费推广网站怎么做
  • 盘锦门户网站制作wordpress调用指定id目录
  • A股大盘数据-20251009分析
  • SpringBoot图书管理系统
  • 做品牌网站的网站开发浏览器兼容
  • Parasoft助力NEC实现自动化测试提升审查效率
  • 安全渗透靶场环境搭建
  • 洛谷P10391 [蓝桥杯 2024 省 A] 零食采购
  • 贵阳网站开发zu97小学生简短小新闻摘抄
  • 开源 C++ QT QML 开发(十四)进程用途
  • 免费做试用的网站龙口网站建设哪家好
  • 数据结构-----线性表
  • 域外网站wordpress创意小工具
  • 深入理解 AI 流式接口:从请求到响应的完整解析
  • CentOS 7上安装SonarQube10
  • 制作购物网站教程做网站报价表
  • wordpress得到分类id南宁搜索引擎优化
  • OTC欧地希焊接机器人智能气阀
  • 怎么优化网站代码一个完整的网站怎么做
  • JavaSE数组和字符串
  • LTE常见的调制解调方法
  • 天河建设网站企业科技大盗
  • linux网络服务+linux数据库6
  • wordpress 数据站wordpress 会员投搞
  • 滨州淄博网站建设展示型网站建设流程方案