温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java中IO相关知识点有哪些

发布时间:2021-09-09 10:32:50 来源:亿速云 阅读:99 作者:小新 栏目:编程语言

这篇文章主要介绍了Java中IO相关知识点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1,用户空间系统空间

Linux系统会把一个进程分为两个空间,用户空间和系统空间,比如我们正常的编码,操作的都是用户空间的,那如果我们需要调用系统功能,比如拷贝系统文件,这种就需要调用系统组件,获取内核服务,完成操作

IO的两个阶段

IO的执行过程中分为两个阶段,等待就绪,执行拷贝

等待就绪:我们知道,我们执行IO操作的时候,数据可能来自别的应用程序或者网络,如果没有数据,操作系统是会一直等待的,此时,应用程序可能也会一直等待
执行拷贝:将数据拷贝到应用程序工作区

阻塞与非阻塞,同步与异步

先说同步与非同步,最简单就是看是否启动一个线程或者进程来完成IO这件事情,同步IO的时候,系统会停下来等这个做完才能做别的事情,而异步IO就利用多线程的方式,启动一个新的线程去做这件事情,而自己就可以去干别的事情等待通知

再说阻塞与非阻塞吧,这两个其实关注的是程序在等待调用结果的时候的状态,阻塞是指,你在获取这个结果的时候,你会一直挂起,直到等到完整结果之后你才会继续执行,非阻塞是指,在该进程不能获取结果的时候,没有阻塞线程,这个有点绕,有一个通俗的解释,如果是阻塞的,我要获取这个东西,获取过程中,我就失去了CPU,等到结果之后我才会获取CPU,但是如果我是非阻塞,我就继续持有CPU,我还可以一直检查

几种IO模型

目前比较多的就是5种

阻塞IO

最传统的一种IO,即读写会发生阻塞现象的

非阻塞IO

用户发起read的时候,并不会失去CPU,会一直check,如果没有成功,会返回一个error,如果收到成功信号,就会发起read操作,获取完整结果

多路复用IO

这个就是Java NIO的核心了,会有一个线程管理多个socket的状态,检查是否有准备好的,只有发现真正准备好,才会调用cpu执行IO操作,这块是比较重要的

信号驱动IO

用的少,忽略

异步IO

起一个线程去执行吧

感谢你能够认真阅读完这篇文章,希望小编分享的“Java中IO相关知识点有哪些”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI