在Java中可以使用多线程来同时读取多个stdin流。可以创建多个线程来读取不同的stdin流,并让这些线程并行运行。
下面是一个示例代码,演示如何同时读取两个stdin流:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MultiStdinReader {
public static void main(String[] args) {
Thread t1 = new Thread(new StdinReader("Stream 1:"));
Thread t2 = new Thread(new StdinReader("Stream 2:"));
t1.start();
t2.start();
}
static class StdinReader implements Runnable {
private String streamName;
public StdinReader(String streamName) {
this.streamName = streamName;
}
@Override
public void run() {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
while (true) {
System.out.print(streamName);
String line = reader.readLine();
System.out.println("Read: " + line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在上面的示例中,创建了两个线程t1和t2,分别读取stdin流,并输出读取的内容。这样可以同时读取两个stdin流,并且不会相互干扰。