2012-12-06 85 views
0

Java的SocketChannel.read()方法是否同步輸出緩衝區?

換句話說:傳遞給java.nio.channels.SocketChannel中的read(ByteBuffer)方法(基本上是任何通道)的ByteBuffer參數是否存在鎖定。我需要知道這一點,所以我沒有不必要的同步塊。

+0

你爲什麼不看看[源代碼](http://www.grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/ NIO /信道/ SocketChannel.java#SocketChannel.read%28java.nio.ByteBuffer%29)? –

+0

等等,真的嗎?自Oracle何時發佈其源代碼? – Jon

+0

由於Java已經開源? –

回答

0

Java的文件爲一個SocketChannel說:

  • 插槽通道是由多個併發線程安全使用。他們
  • 支持併發讀取和寫入,儘管最多一個線程可能是
  • 讀取和最多一個線程可能在任何給定的時間寫入。的{@link
  • #connect連接}和{@link #finishConnect finishConnect}方法
  • 彼此相互同步,並且啓動的嘗試讀
  • 或寫入操作而這些中的一個的調用方法在
  • 進程將阻塞,直到該調用完成。