SocketChannel write() read() - 非阻塞 - Java

SocketChannel write() read() - Non-blocking - Java

在非阻塞模式下,可以注册一个channel,这样当channel准备好写入时,通知selector。

我的问题是,我的频道怎么弄,知道什么时候写。 java 决定通道现在可以写入的条件是什么?例如,服务器(假设我是客户端)是否通知我的 channel/socket 它已准备好读取?所以我的 SelectionKey.OP_WRITE 触发了选择器?

我想知道 read() 也一样。但我想它是在套接字已经收到一些数据时通知您读取已收到的数据。对吗?

谢谢

它实际上并没有告诉你什么时候它准备好进行物理写入,而是当它有空 space 写入缓冲区或读取缓冲区不为空时读取。