0

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

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

4

1 回答 1

0

SocketChannel 的 Java-Doc 说:

  • 套接字通道可以安全地被多个并发线程使用。他们
  • 支持并发读写,但最多可以有一个线程
  • 读取,并且在任何给定时间最多可以有一个线程正在写入。链接
  • #connect connect} 和 {@link #finishConnect finishConnect} 方法是
  • 相互同步,并尝试启动读取
  • 或在调用这些方法之一时写入操作
  • 进度将阻塞,直到该调用完成。
于 2012-12-06T20:21:11.510 回答