Существует несколько способов сделать это. Как было предложено в других сообщениях, вы можете использовать System.currentTimeMillis()
и проверять его на переменную long startTime
, которую вы передаете через рекурсивный вызов, или каким-либо иным образом доступным для рекурсивной функции по мере ее выполнения. Или вы можете использовать Runnable
или Callable
, чтобы перевернуть флаг или запустить обратный вызов после 5000ms sleep()
, но я думаю, что это может быть излишним.
Последний раз я сделал что-то вроде этого, я использовал Guava class называется StopWatch
, который обеспечивает хороший метод, называемый elapsedMillis()
, который дает вам количество истекших миллисекунд, так как вы начали свой StopWatch
. Этот подход больше всего похож на System.currentTimeMillis()
, но требует немного меньше плиты котла. Если введение Guava в качестве зависимости не является вариантом, то вы всегда можете реализовать аналогичный класс самостоятельно, который под капотом будет просто использовать System.currentTimeMillis()
в любом случае.
просто идея. Возьмите статическую переменную и используйте в соответствии с вашими требованиями. –
Есть ли встроенный класс java, который вы бы рекомендовали использовать для отслеживания времени? Как вы его реализуете? Кроме того, спасибо за ответ –