生活随笔
收集整理的這篇文章主要介紹了
I/O
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
I/O
1:常見的 I/O 模型
- unix 系統中
- 同步阻塞
- 同步非阻塞
- I.O 多路復用
- 信號驅動
- 異步 I/O
- 輪詢
- 終端
- DMA
- 通道?
- BIO
- 同步阻塞
- 應用程序發起請求之后,就一直都等待數據的返回,一直阻塞
- NIO
- Non- blocking I/O
- 面向緩沖的,基于通道的I/O
- 多路復用
- 線程首先發起select 調用,詢問數據是否準備就緒
- 等內核數據準備好了,線程再發起read調用
- 多路復用器
- 只需要一個線程便可以管理多個連接
- 當數據到了之后,才會為其進行服務
- AIO
- 異步IO模型
- 基于時間和回調機制來實現的
- 應用操作之后會直接返回,不會堵塞
- 當后臺處理完成之后,操作系統會通知相應的線程進行后續的操作
2:I/O 分為哪幾種
- 按照流的流向,可以分為輸入流和輸出劉
- 按照操作的單元,分為字節流和字符流
- 按照流的角色,分為節點流和處理流
3:為什么有了字節流還有字符流
- 字符流是由Java虛擬機將字節碼轉化得到的,這個轉換是比較耗時的,并且可能還會在編碼類型上出問題
- 直接提供一個操作字符的接口,方便我們平時對字符進行流操作。
- 如果我們是音頻,視頻,字節流是比較好的
- 如果是字符的話,用字符流比較好
- 面向字節流的inputstream 和 outpurstream
- 面向字符的reader 和 writer
總結
以上是生活随笔為你收集整理的I/O的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。