Java的SocketChannel $ read()是否同步输出缓冲区?

时间:2012-12-06 20:00:37

标签: java networking nio synchronized channels

Java的SocketChannel.read()方法是否同步输出缓冲区?

换句话说:在java.nio.channels.SocketChannel(基本上是任何通道)中传递给read(ByteBuffer)方法的ByteBuffer参数是否有锁定。我需要知道这一点,所以我没有不必要的同步块。

1 个答案:

答案 0 :(得分:0)

SocketChannel的Java-Doc说:

  • 多个并发线程可以安全地使用套接字通道。它们
  • 支持并发读写,但最多只有一个帖子可能
  • 阅读并且最多一个帖子可能在任何给定时间写作。 {@link
  • #connect connect}和{@link #finishConnect finishConnect}方法
  • 彼此相互同步,并尝试启动阅读
  • 在中调用其中一种方法时,
  • 或写入操作
  • 进度将阻止,直到调用完成。