在这个网站上看到许多其他类似的问题,我会说在批评这篇文章之前,没有一个问题得到完全回答。
这是一个简单的问题,我必须使用一个计时器30秒,并检索用户输入(字符串),如下所示..
while (timer is still less than 30 seconds)
allow user to enter input (using either scanner, buffered reader)
我知道线程是必需的但不确定如何实现这个版本,并且似乎比我第一次出现的要复杂得多。
感谢
答案 0 :(得分:0)
尝试执行以下操作(未附加线程;)):
long startTime = System.currentTimeMillis();
long timeElapsed;
do {
// Get user input
.
.
// Process input
.
.
// Check time elapsed
timeElapsed = (System.currentTimeMillis() - startTime) / 1000;
} while (timeElapsed < 30);
请记住,我认为获取用户输入是阻止的。 (否则while循环会阻塞我建议将睡眠声明设为100ms的cpu)