long startTime = System.currentTimeMillis();
while(System.currentTimeMillis() - startTime <= 3000){
x();
}
+ 1 для ответа Аарона, используя вместо этого long finishTime = System.currentTimeMillis() + 3000
, перемещая сложение / вычитание за пределы цикла, оставляя только сравнение эффективности / производительности.
Обратите внимание, что, как только вывведите x (), и если x () занимает некоторое время, общий цикл может выполняться дольше, чем вы хотите.Если x () - это длина, вы также можете добавить проверки для условия остановки в нем.