我在Java中使用PipedOutputStreamPipedInputStream

一个线程正在生成字节并将其写入。另一个正在消耗它们。

我想确保生成的字节不会比消耗它们快得多。

PipedOutputStream什么时候阻止?缓冲区的大小是否固定?

还是在我flush()之后每次都需要打write()吗?

最佳答案

这就是它的行为方式。管道共享一个相当小的缓冲区,根据下面的注释,缓冲区为1k,如果缓冲区填满了writer块。

10-01 03:44