首页 > 编程语言 >宏观层面理解Java IO

宏观层面理解Java IO

时间:2024-08-08 09:29:29浏览次数:6  
标签:视角 调用 Java 层面 阻塞 IO 进程

什么是IO

简单来说就是输入和输出,体现了数据的流动。从不同的视角来看,IO有不同的解释

直观层面

在日常生活中,键盘鼠标,显示器音响打印机,这些就属于IO设备,人机交互的过程中,需要我们对计算机输入指令,计算机给我们输出内容,声音文字视频等等。

计算机视角

在计算机视角,任何涉及到CPU与内存进行数据交换的,都属于IO,比如磁盘IO,将数据从磁盘里读出来,处理后再写入磁盘;从互联网上获取数据,再吐给互联网,这叫网络IO

程序员编程视角

这里关注的实际上是我们编写的应用程序,也就是进程。为了保证系统的稳定性,进程的地址空间分为用户空间和系统空间,我们平时的程序都是在用户空间,是没办法需求操作系统空间的内容的。所以进程只能向操作系统发起IO调用,IO执行是操作系统的工作。

当应用发起IO调用的时候,会经历两个阶段:

  1. 内核等待IO设备准备好数据
  2. 将准备好的数据拷贝到用户空间
    上述这个看似简单的过程,可以引申出以下问题:

阻塞还是非阻塞

阻塞的话,就是进程发起IO调用,在内核或者系统准备数据直到将数据准备好拷贝给用户的这段时间里,进程一直等待着,啥事儿也不干。
非阻塞的话,就是发起IO调用之后,进程去做自己的事情,不用一直等待。

同步还是异步
阻塞还是非阻塞

Java有哪些IO模型

BIO

NIO

IO多路复用

AIO

落实到项目中如何使用

标签:视角,调用,Java,层面,阻塞,IO,进程
From: https://www.cnblogs.com/Jason-01011010/p/18348286

相关文章

  • Java数组篇[1]:数组的定义和声明
    哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。  我是一名后端开发爱好者......
  • Java数组篇[2]:数组的初始化
    哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。  我是一名后端开发爱好者......
  • 计算机毕业设计项目推荐,院系资料分类管理平台 84184(开题答辩+程序定制+全套文案 )上万
    目 录摘要1绪论1.1研究背景1.2研究意义1.3论文结构与章节安排2 院系资料分类管理平台系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数据修改流程2.2.3数据删除流程2.3系统功能分析2.3.1功能性分析2.3.2非功能性分析......
  • 计算机毕业设计项目推荐,红色旅游网站设计与开发 99214(开题答辩+程序定制+全套文案 )上
    摘 要21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于旅游服务管理也是十分常见的。过去使用手工的管理方式对旅游服务进行管理,造成了管理繁琐、难以维护等问题,如今使用计算机对旅游服务的各项基本信息进行管理,比起手工管理来说既方便又简单,而且具有易......
  • iOS 语言基础与初探 Xcode 工具
    随着移动设备的广泛普及,iOS应用开发已成为一个充满机遇和挑战的领域。iOS是苹果公司为其移动设备(如iPhone和iPad)开发的操作系统,iOS应用主要使用Swift和Objective-C两种编程语言进行开发。掌握这两种语言的基础知识以及熟悉Xcode开发工具是开发iOS应用的核心技能......
  • 【题解】Solution Set - NOIP2024集训Day2 线段树
    【题解】SolutionSet-NOIP2024集训Day2线段树https://www.becoder.com.cn/contest/5431「CF1149C」TreeGenerator™结论:对于括号序列的一个子段,删去所有的匹配括号之后,剩下的不匹配的括号,按顺序构成树上的一条路径。Why?从括号序列的构造出发。每次(相当于开始遍历......
  • Java--异常
    目录概念Java异常类结构图Exception异常分类运行异常(RuntimeException)非运行时异常(受检查异常类)异常处理机制throw、throws关键字Throwable类中的常用方法异常处理的基本语法try、catch、finally三个语句块应注意的问题概念异常就是程序在编译时发生的意想不到的情况,一般而言......
  • Open3D 三维重建-Delaunay Triangulation (德劳内三角剖分)
    目录一、概述1.1原理1.2实现步骤1.3应用二、代码实现2.1关键函数2.2完整代码三、实现效果3.1原始点云3.2重建后点云Open3D点云算法汇总及实战案例汇总的目录地址:Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客一、概述        德劳内三角剖......
  • nginx location 和 proxy_pass 带 / 和不带 / 的区别
    nginx服务器地址及端口:127.0.0.1:80后端服务地址及端口:127.0.0.1:8080测试URL:http://127.0.0.1:80/api/upload一nginx配置:location/api/{proxy_passhttp://127.0.0.1:8080/;}实际访问:http://127.0.0.1:8080/upload二nginx配置:location/api{proxy......
  • cookie和session
    一、Cookie和Session的知识点1.Cookie定义:Cookie是存储在用户本地终端上的数据,它是由服务器发送到用户浏览器并保存在本地的一小块数据。当用户再次访问同一网站时,浏览器会将Cookie发送回服务器,以便服务器识别用户身份或记录用户相关信息。工作原理:服务器在HTTP......