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

Java面试篇基础部分-Java中常用的I/O模型

阻塞I/O模型

  阻塞式的I/O模型是一种非常常见的I/O模型机制,在进行数据读写操作的时候,客户端会发生阻塞等待。

  工作流程如图所示,该用户线程一直阻塞,等待内存中的数据就绪;内存中的数据就绪之后,内核态的数据将拷贝到用户线程中,并且返回I/O的执行结果到用户线程。这个时候用户线程将会解除刚刚的阻塞状态并开始进行数据的处理。

  比较典型的场景就是socket.read(),如果内核数据没有,Socket线程就会一直阻塞在read()中进行等待。
在这里插入图片描述

非阻塞I/O模型

  非阻塞I/O模型是指用户线程在发起一个I/O操作之后,不需要阻塞就可以得到一个来自内核的反馈结果。如果内核的返回结果是false,表示内核数据还没有准备好,需要在稍后发起I/O操作。如果内核中的数据准备完成,并且收到用户请求的时候,内核就会立即将数据复制到用户的线程中,并且将数据复制的结果通知用户线程。
在这里插入图片描述
  在非阻塞的I/O模型中,用户线程需要不断的访问内核数据是否就绪,在内核数据没有准备好的时候,用户线程可以进行处理其他的任务操作,在内核的数据准备好之后,立即获取数据并且进行响应的操作。如下所示。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Rust 简介与安装
  • leetcode 每日一题
  • 【C++】—— list 的了解与使用
  • 使用3-8译码器实现全减器(Verilog详细解析设计篇)
  • React两种路由模式的实现原理
  • 2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘
  • SpringBoot 整合酷狗获取下载音乐(需要自己账户)
  • 基于鸿蒙API10的RTSP播放器(四:沉浸式播放窗口)
  • 微软 Azure AI 服务免费试用及申请:语音识别、文本转语音、基于视觉、语言处理、文档分析等10大场景
  • EP12 分类列表元素点击跳转
  • 医学数据分析实训 项目一 医学数据采集
  • 深入解读Docker核心原理:Namespace资源隔离机制详解
  • SPDK 部署NVMe over TCP
  • golang学习笔记19——golang做服务发现与注册的深度剖析
  • PHP在现代Web开发中的高效应用与最佳实践
  • ES6指北【2】—— 箭头函数
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 0基础学习移动端适配
  • 2017 前端面试准备 - 收藏集 - 掘金
  • avalon2.2的VM生成过程
  • CentOS6 编译安装 redis-3.2.3
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript标准库系列——Math对象和Date对象(二)
  • k个最大的数及变种小结
  • PAT A1120
  • Python_网络编程
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • RxJS: 简单入门
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 基于遗传算法的优化问题求解
  • 简单数学运算程序(不定期更新)
  • 将 Measurements 和 Units 应用到物理学
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 码农张的Bug人生 - 见面之礼
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端代码风格自动化系列(二)之Commitlint
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 深度学习入门:10门免费线上课程推荐
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 一些css基础学习笔记
  • 用mpvue开发微信小程序
  • NLPIR智能语义技术让大数据挖掘更简单
  • 从如何停掉 Promise 链说起
  • 回归生活:清理微信公众号
  • 如何在招聘中考核.NET架构师
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • $.ajax,axios,fetch三种ajax请求的区别
  • (2)nginx 安装、启停
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (7)svelte 教程: Props(属性)
  • (独孤九剑)--文件系统
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数