簡體   English   中英

Java NIO-對通道的多線程訪問

[英]java NIO - multithreaded access to channels

根據java.NIO的文檔,緩沖區是線程不安全的,而在大多數情況下,通道( FileChannel, SocketChannel等)可以安全地被多個線程使用。 我在文檔中找不到清晰的描述,例如當兩個線程同時開始從FileChannel讀取時會發生什么。 第一個操作是先讀取前N個字節,還是有可能將第一個M字節獲取到第一個通道的緩沖區,然后在我們上下文切換將更多內容讀入第一個緩沖區之前,下一對將轉到第二個緩沖區。有誰知道多線程訪問通道的保證是什么?

讀取“涉及文件的位置”,因此阻止其他線程進行后續讀取。 但是,沒有什么可以保證讀取返回的字節數是單線程還是多線程的,除非剩下要讀取的字節數大於零,否則不能保證返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM