【问题标题】:Can I write and read SocketChannel at once? [duplicate]我可以一次写入和读取 SocketChannel 吗? [复制]
【发布时间】:2016-10-19 05:12:48
【问题描述】:

我打开了一个java.nio.channels.SocketChannel 的对象(socketChannel)。

还有socketChannel.configureBlocking(false);

安全吗:

  1. 从一个线程写入,
  2. 在另一个线程中读取它,

同时?

【问题讨论】:

    标签: java multithreading sockets nio


    【解决方案1】:

    是的,可以有一个线程写入SocketChannel,而一个线程正在读取它。

    来自 Javadoc:

    套接字通道可以安全地被多个并发线程使用。他们 支持并发读写,但最多一个线程可以 正在阅读,并且在任何给定时间最多可以有一个线程正在写入。

    https://docs.oracle.com/javase/8/docs/api/java/nio/channels/SocketChannel.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 2014-06-17
      • 2020-04-18
      • 2018-10-01
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      相关资源
      最近更新 更多