【发布时间】:2013-02-23 05:03:24
【问题描述】:
非阻塞读取和阻塞读取之间的区别很明显,但我对写入感到困惑。我知道非阻塞写入永远不会阻塞(呃!)。如果底层套接字缓冲区已满,则根本不会向其中写入字节。这就是为什么在调用 channel.write 时检查写入了多少字节很重要的原因。
现在阻止写入怎么样?什么时候阻塞?当你叫冲洗?当你在它的OutputStream上调用write?它会阻塞直到底层写入套接字缓冲区中有空间吗?还是写不出来会抛出异常吗?
【问题讨论】:
-
还有异步写入...
-
@irreputable 异步写入我认为是非阻塞写入。
-
不准确。这 3 种模式彼此完全不同。
-
@irreputable 异步写入和非阻塞写入有什么区别?异步写入是否以某种方式给你一个回调?我从未在 Java 中见过这种情况。你有一个例子的链接吗?
标签: java sockets real-time nio nonblocking