非阻塞读取和阻塞读取之间的区别很明显,但我对写入感到困惑。我知道非阻塞写入永远不会阻塞(呃!)。如果底层套接字缓冲区已满,则根本不会向其中写入字节。这就是为什么在调用 channel.write 时检查写入了多少字节很重要的原因。
现在如何阻止写入?什么时候阻塞?当你叫冲洗?当你在它的OutputStream上调用write?它会阻塞直到底层写入套接字缓冲区中有空间吗?或者如果它不能写,它会抛出异常吗?
非阻塞读取和阻塞读取之间的区别很明显,但我对写入感到困惑。我知道非阻塞写入永远不会阻塞(呃!)。如果底层套接字缓冲区已满,则根本不会向其中写入字节。这就是为什么在调用 channel.write 时检查写入了多少字节很重要的原因。
现在如何阻止写入?什么时候阻塞?当你叫冲洗?当你在它的OutputStream上调用write?它会阻塞直到底层写入套接字缓冲区中有空间吗?或者如果它不能写,它会抛出异常吗?