Java - 带有计时器的用户输入threadin

时间:2012-04-01 14:04:44

标签: java multithreading string timer user-input

在这个网站上看到许多其他类似的问题,我会说在批评这篇文章之前,没有一个问题得到完全回答。

这是一个简单的问题,我必须使用一个计时器30秒,并检索用户输入(字符串),如下所示..

while (timer is still less than 30 seconds)
      allow user to enter input (using either scanner, buffered reader)

我知道线程是必需的但不确定如何实现这个版本,并且似乎比我第一次出现的要复杂得多。

感谢

1 个答案:

答案 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)