Java IO: 并发IO
生活随笔
收集整理的這篇文章主要介紹了
Java IO: 并发IO
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載自? ?Java IO: 并發IO
譯文鏈接?作者: Jakob Jenkov 譯者: 李璟
有時候你可能需要并發地處理輸入和輸出。換句話說,你可能有超過一個線程處理輸入和產生輸出。比如,你有一個程序需要處理磁盤上的大量文件,這個任務可以通過并發操作提高性能。又比如,你有一個web服務器或者聊天服務器,接收許多連接和請求,這些任務都可以通過并發獲得性能的提升。
如果你需要并發處理IO,這里有幾個問題可能需要注意一下:
在同一時刻不能有多個線程同時從InputStream或者Reader中讀取數據,也不能同時往OutputStream或者Writer里寫數據。你沒有辦法保證每個線程讀取多少數據,以及多個線程寫數據時的順序。
如果線程之間能夠保證操作的順序,它們可以使用同一個stream、reader、writer。比如,你有一個線程判斷當前的輸入流來自哪種類型的請求,然后將流數據傳遞給其他合適的線程做后續處理。當有序存取流、reader、writer時,這種做法是可行的。請注意,在線程之間傳遞流數據的代碼應當是同步的。
注意:在Java NIO中,你可以讓一個線程讀寫多個“channel”。比如,你有很多網絡連接處于開啟狀態,但是每個連接中都只有少量數據,類似于聊天服務器,可以讓一個線程監視多個頻道(連接)。Java NIO是另一個話題了,會后續教程中介紹。
總結
以上是生活随笔為你收集整理的Java IO: 并发IO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑灵电脑配置2022(剑灵 电脑 配置)
- 下一篇: java美元兑换,(Java实现) 美元