中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java系統中I/O模型有哪些

發布時間:2021-11-18 09:21:32 來源:億速云 閱讀:148 作者:小新 欄目:大數據

小編給大家分享一下java系統中I/O模型有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、阻塞式I/O模型

java系統中I/O模型有哪些

備注:進程調用recvfrom, 系統調用直到數據到達且數據被復制到應用進程的緩存區或者發生錯誤時才返回結果,應用進程開始數據數據。特點:圖示中第1步和第2步都是阻塞的。

二、非阻塞式I/O模型

java系統中I/O模型有哪些

備注:調用recvfrom時沒有數據返回,因此內核轉而立即返回一個EWOULDBLOCK錯誤;數據準備好被復制到應用進程緩存區,于是recvfrom成功返回。特點:圖示第1步沒有阻塞;第2步阻塞;由于持續輪詢內核調用recvfrom,耗費大量CPU資源。

三、I/O復用模型

java系統中I/O模型有哪些

備注:I/O復用可以調用select/poll阻塞在這兩個系統調用中的某一個上,而不是阻塞在真正的I/O系統調用上。圖示中應用進程阻塞于select調用,等待數據報套接字變為可讀,當select返回套接字可讀這一條件時,調用recvfrom把所讀數據復制到應用進程緩沖區。特點:select等待多個描述符就緒;即圖示中第1步可以等待多個文件描述符。與I/O復用密切相關的另一種I/O模型:在多線程中使用使用阻塞I/O;該模式沒有使用select阻塞在多個文件描述符上,而是使用多線程,每個文件描述符一個線程,這樣每個線程都可以自由地調用像recvfrom之類的阻塞式系統調用。

四、信號驅動式I/O模型

java系統中I/O模型有哪些

備注:應用程序開啟套接字的信號驅動式I/O功能,通過sigaction系統調用安裝一個信號處理函數。系統調用立即返回,應用程序繼續工作,即:非阻塞。當數據報準備好讀取后,內核為該進程產生一個SIGIO信號。進而可以調用recvfrom讀取數據報。特點:內核在描述符就緒時發送SIGIO信號通知應用程序,等待數據報的過程不被阻塞;即:圖示第1步不被阻塞。

五、異步I/O模型

java系統中I/O模型有哪些

備注:異步I/O由POSIX規范定義,工作機制:應用進程告訴內核啟動某個動作,并在內核處理整個過程含數據準備以及數據從內核空間復制到用戶空間完成后通知應用進程。應用進程在等待I/O完成期間不被阻塞。特點:應用進程不被阻塞調用aio_read后立即返回;內核在第1步和第2步全部完成后通知應用進程;支持該異步I/O模型的系統少見。

以上是“java系統中I/O模型有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

徐水县| 乌兰浩特市| 建昌县| 兴仁县| 社会| 申扎县| 巫溪县| 紫金县| 信丰县| 凉城县| 太康县| 将乐县| 炉霍县| 曲麻莱县| 仁化县| 岐山县| 德州市| 大田县| 郯城县| 保靖县| 同仁县| 通化市| 鹤峰县| 建始县| 连城县| 慈利县| 鹰潭市| 闽侯县| 宽甸| 且末县| 横山县| 云安县| 保靖县| 衡山县| 于都县| 浦县| 杭锦旗| 石台县| 佛学| 揭阳市| 朝阳区|