2012-12-06 43 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}方法
  • 彼此相互同步,并且启动的尝试读
  • 或写入操作而这些中的一个的调用方法在
  • 进程将阻塞,直到该调用完成。