Java - Пользовательский поток ввода с таймером - PullRequest
1 голос
/ 01 апреля 2012

На этом сайте было много других подобных вопросов, и я бы сказал, что ни на один из них не было получено полного ответа до того, как будет сделан критический отзыв об этом сообщении.

Это простая проблема, я должен использовать таймер на 30секунд и получить пользовательский ввод (строку), как показано ниже.

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

Я знаю, что потребуется многопоточность, но не уверен, как реализовать этот atal, и он кажется намного сложнее, чем я задумал.

спасибо

1 Ответ

0 голосов
/ 01 апреля 2012

Попробуйте сделать следующее (темы не прикреплены;)):

long startTime = System.currentTimeMillis();
long timeElapsed;
do {
    // Get user input
    .
    .


    // Process input
    .
    .

    // Check time elapsed
    timeElapsed = (System.currentTimeMillis() - startTime) / 1000;

} while (timeElapsed < 30);

Имейте в виду, что я предполагаю, что получение пользовательского ввода блокирует.(в противном случае цикл while задушит процессор, для которого я советую поместить оператор сна, скажем, в 100 мс)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...