我正在尝试并行执行我的代码,但是现在遇到了问题。 没有并行执行的代码正在等待输入(1),然后他打印出某些内容(2)。 现在,我在计时器(task2)的帮助下并行执行代码,对于输入(1),我得到了另一个循环。
现在,如果我尝试写下一些内容,但速度不够快,则输入无法读取被task2打印输出中断的整个输入。
static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
static PrintStream out = new PrintStream(System.out);
static void test1(BufferedReader in, PrintStream out) throws IOException {
String input = in.readLine();
if (input.equals("test"))
System.out.println("true input");
else System.out.println("false input");
}
public static void main(String[] args) throws IOException {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
while (true) {
System.out.println("print");
Thread.sleep(1000);}}}, 1000);
while (true)
test1(in, out);
}
答案 0 :(得分:0)
在按Enter之前,您可以阅读单个字符。
StringBuilder strBuilder = new StringBuilder();
char ch;
while((ch = in.read()) != '\n'){
strBuilder.append(ch);
}
String input = strBuilder.toString();