一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 淺析Java IO相關知識點

淺析Java IO相關知識點

2021-05-06 11:06meng劇場 Java教程

本篇文章給大家分享了關于java io的一些相關知識點以及相關內容,對此有需要的朋友可以學習參考下。

最近面試問的比較多的問題就是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

起一個線程去執行吧

原文鏈接:https://segmentfault.com/a/1190000015008372

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲第五色综合网啪啪 | 三级黄片毛片 | 香蕉久久高清国产精品免费 | 超级乱淫伦小说1女多男 | 成人中文字幕在线观看 | 福利视频一区二区三区 | 国产一区二区在线免费观看 | 精品久久免费视频 | 性夜夜春夜夜爽AA片A | 日本三级做a全过程在线观看 | 欧洲美女啪啪 | 精品一区二区高清在线观看 | 美女被躁了在线观看视频 | 拔插拔插成人 | 性xx色3d动画xx无尽 | 久久精品一卡二卡三卡四卡视频版 | 亚洲第6页| 午夜福到在线4国产 | 亚洲国产综合自在线另类 | 女人全身裸露无遮挡免费观看 | 成人资源影音先锋久久资源网 | 色老板在线观看 | 亚洲免费视频在线 | 精品国产品国语在线不卡丶 | 国产1区2区三区不卡 | 国产精品久久国产精品99盘 | 欧美男男gaygaysxxx | 国产一级持黄大片99久久 | 免费av在线看 | 缴情五月天 | 亚洲 欧美 国产 在线 日韩 | 亚洲国产精品自产在线播放 | 午夜欧美精品 | 久久99re热在线播放7 | 99这里精品 | 日韩欧美一区二区三区视频 | 热穴高校 | 耽美双性 | 98免费视频 | 日产国产精品亚洲系列 | 俺去啦最新官网 |