在这个网站上看到了许多其他类似的问题,我想说在对这篇文章进行批评之前,这些问题都没有得到完全回答。
这是一个简单的问题,我必须使用计时器 30 秒并检索用户输入(字符串),如下所示..
while (timer is still less than 30 seconds)
allow user to enter input (using either scanner, buffered reader)
我知道需要线程,但不确定如何实现这个 atal,并且似乎比我最初设定的要复杂得多。
谢谢
最佳答案
尝试执行以下操作(没有附加线程;)):
long startTime = System.currentTimeMillis();
long timeElapsed;
do {
// Get user input
.
.
// Process input
.
.
// Check time elapsed
timeElapsed = (System.currentTimeMillis() - startTime) / 1000;
} while (timeElapsed < 30);
请记住,我假设获取用户输入是阻塞的。 (否则 while 循环会阻塞 cpu,我建议为此放置一个 100ms 的 sleep 语句)
关于Java - 带计时器的用户输入线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9964973/