在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流,并且不會相互干擾。