0

Java の SocketChannel.read() メソッドは出力バッファを同期しますか?

つまりread(ByteBuffer)、java.nio.channels.SocketChannel (基本的に任意のチャネル) のメソッドに渡される ByteBuffer 引数にロックがありますか。不必要な同期ブロックがないように、これを知る必要があります。

4

1 に答える 1

0

Java-Doc for SocketChannel は次のように述べています。

  • ソケット チャネルは、複数の同時スレッドで安全に使用できます。彼ら
  • 同時読み取りと書き込みをサポートしますが、最大で 1 つのスレッドが可能です。
  • 常に 1 つのスレッドが書き込みを行っている可能性があります。リンク
  • #connect connect} および {@link #finishConnect finishConnect} メソッドは
  • 相互に同期し、読み取りを開始しようとする試み
  • または、これらのメソッドの呼び出し中の書き込み操作
  • その呼び出しが完了するまで、進行状況はブロックされます。
于 2012-12-06T20:21:11.510 に答える