Java - 带计时器的用户输入线程

标签 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)

我知道需要线程,但不确定如何实现这个 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/

相关文章:

java - @JsonProperty 没有申请 BeanWrapper

java - Sonar "useless assignment to local variable"解决方法?

java - MimeMessage 和 SMTPMessage Java 的区别

c# - Parallel.ForEach 和 ConcurrentDictionary 比常规字典慢

java - 如何停止 Handler Runnable?

java - 适用于 Linux 和 RandomSource 的 Oracle Java 8 x64

java - 指定秒内的最大线程调用数

java - 如何更改所有应用程序中android字符串的名称

javascript - 正则表达式提取字符串末尾第二个 "."点字符后的字符串

Java:用不同的空白字符替换字符串中的空格?