PipedOutputStream out = new PipedOutputStream();
PipedInputStream in = new PipedInputStream(out);
new YourReadingThread(in).start();
new YourWritingThread(out).start();
那你写信给谁都行 out 可供通读 in . 如果您正在寻找一个解决方案,使线程安全bytebuffer,我建议您使用 ReentrantReadWriteLock :
2条答案
按热度按时间toiithl61#
对不起的,
ByteBuffer
对我不好,因为这涉及到玩position
缓冲区的一部分。我意识到我真正需要的只是一个简单的
pipe
(我不知道我怎么能忘记管道)。我举了一个例子:
7z5jn7bk2#
如果您希望简单地将字节从一个线程流到另一个线程,我建议您使用
PipedInputStream
以及PipedOutputStream
. 但请注意,由于设计错误,您可能需要这样的解决方案。下面是你将如何做这样的事情,例如:
那你写信给谁都行
out
可供通读in
.如果您正在寻找一个解决方案,使线程安全bytebuffer,我建议您使用
ReentrantReadWriteLock
: