我希望能够让一个线程等待一个或多个流/管道上的数据可用,然后轮询读取数据(然后再等待更多)
std::vector
答案 0 :(得分:1)
标准Java IO API是一种阻塞实现。换句话说,如果你的线程看起来像一个循环:
byte[] input = ...;
while (stream.read(input) != -1)
{
...
}
然后该线程将阻塞,直到有从流中读取的内容(或流关闭,没有更多数据等),这些描述听起来就像你想要做的那样。
此外,从您的代码看起来您想要读取进程输出。确保从流程中排出其他流(如stderr),否则你将超出限制并获得例外。