javaio的重要性

java io的重要性?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

創(chuàng)新互聯(lián)主營(yíng)寶安網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,App定制開發(fā),寶安h5微信小程序定制開發(fā)搭建,寶安網(wǎng)站營(yíng)銷推廣歡迎寶安等地區(qū)企業(yè)咨詢

 Java的IO流是實(shí)現(xiàn)輸入/輸出的基礎(chǔ),它可以方便地實(shí)現(xiàn)數(shù)據(jù)的輸入/輸出操作,在Java中把不同的輸入/輸出源抽象表述為"流"。

流是一組有順序的字節(jié)集合,是對(duì)數(shù)據(jù)傳輸?shù)目偡Q或抽象。

流有輸入和輸出,輸入時(shí)是流從數(shù)據(jù)源流向程序。輸出時(shí)是流從程序傳向數(shù)據(jù)源,而數(shù)據(jù)源可以是內(nèi)存,文件,網(wǎng)絡(luò)或程序等。

用戶進(jìn)程和操作系統(tǒng)內(nèi)核

Java 中的IO可以理解為是在Java程序和操作系統(tǒng)內(nèi)核兩個(gè)對(duì)象之間進(jìn)行的。
后面所說的阻塞和非阻塞,同步和異步都是這兩個(gè)對(duì)象相互作用的結(jié)果。在本文中,用戶進(jìn)程指的就是Java程序。

程序空間和內(nèi)核空間

Waiting for the data to be ready(等待數(shù)據(jù)到達(dá)內(nèi)核緩沖區(qū))

Copying the data from the kernel to the process(從內(nèi)核緩沖區(qū)拷貝數(shù)據(jù)到程序緩沖區(qū))

在Linux中,對(duì)于一次讀取IO的操作,數(shù)據(jù)并不會(huì)直接拷貝到程序的程序緩沖區(qū)。

它首先會(huì)被拷貝到操作系統(tǒng)內(nèi)核的緩沖區(qū)中,然后才會(huì)從操作系統(tǒng)內(nèi)核的緩沖區(qū)拷貝到應(yīng)用程序的緩沖區(qū)。

程序空間:分配給用戶程序的內(nèi)存空間。

內(nèi)核空間:內(nèi)核擁有的內(nèi)存空間。

阻塞和非阻塞

阻塞:用戶進(jìn)程進(jìn)行系統(tǒng)調(diào)用后,用戶進(jìn)程一直處于鎖定的狀態(tài),不能進(jìn)行其他操作

非阻塞:用戶進(jìn)程進(jìn)行系統(tǒng)調(diào)用后,用戶進(jìn)程沒有被鎖定,可以進(jìn)行其他操作

阻塞和非阻塞說的是用戶進(jìn)程的狀態(tài),即用戶進(jìn)程是否被鎖定

同步和異步

A synchronous I/O operation causes the requesting process to be blocked until that I/O operation completes.
An asynchronous I/O operation does not cause the requesting process to be blocked.

一個(gè)同步的io操作會(huì)導(dǎo)致發(fā)起請(qǐng)求的進(jìn)程阻塞直到這個(gè)io操作完成。一個(gè)異步的io操作不會(huì)導(dǎo)致請(qǐng)求的線程被阻塞。

同步:用戶線程和io線程做同一件事(用戶線程被阻塞,等待內(nèi)核返回處理結(jié)果)

異步:用戶線程和io線程做不同的事情(用戶線程不被阻塞,做其他的事情,內(nèi)核處理完成發(fā)送結(jié)果給用戶線程)

文件描述符

在Linux下面一切皆文件。文件描述符(file descriptor)是內(nèi)核為文件所創(chuàng)建的索引,所有I/O操作都通過調(diào)用文件描述符(索引)來執(zhí)行,包括下面我們要提到的socket。Linux剛啟動(dòng)的時(shí)候會(huì)自動(dòng)設(shè)置0是標(biāo)準(zhǔn)輸入,1是標(biāo)準(zhǔn)輸出,2是標(biāo)準(zhǔn)錯(cuò)誤。

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)java io的重要性大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前標(biāo)題:javaio的重要性
當(dāng)前鏈接:http://muchs.cn/article26/ihsijg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、品牌網(wǎng)站建設(shè)、定制開發(fā)網(wǎng)站維護(hù)、網(wǎng)站設(shè)計(jì)自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)