У меня есть определенная функция, что я хочу быть выполненным после 5 секунд. Как я могу сделать это в Java?
Я нашел javax.swing.timer, но я не могу действительно понять, как использовать его. Похоже, что я ищу что-то путь, более простой затем, этот класс обеспечивает.
Добавьте простой пример использования.
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
// your code here
}
},
5000
);
РЕДАКТИРОВАТЬ:
javadoc говорит:
После того, как последняя живая ссылка на объект Timer уходит и все невыполненные задачи завершили выполнение, поток выполнения задачи таймера корректно завершается (и становится объектом сборки мусора ). Однако это может занять сколь угодно много времени.
Примерно так:
// When your program starts up
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
// then, when you want to schedule a task
Runnable task = ....
executor.schedule(task, 5, TimeUnit.SECONDS);
// and finally, when your program wants to exit
executor.shutdown();
В Executor
есть различные другие фабричные методы, которые вы можете использовать вместо них, если вам нужно больше потоков В бассейне.
И помните, когда вы закончите, важно выключить программу-исполнитель. Метод shutdown ()
полностью отключит пул потоков после завершения последней задачи и будет блокироваться до тех пор, пока это не произойдет. shutdownNow ()
немедленно завершит пул потоков.
В вашем исходном вопросе упоминается "Таймер качания". Если на самом деле ваш вопрос связан с SWing, тогда вам следует использовать Swing Timer, а НЕ util.Timer.
Прочтите раздел учебника Swing « Как использовать таймеры » для получения дополнительной информации.
вы можете использовать функцию Thread.Sleep ()
Thread.sleep(4000);
myfunction();
Ваша функция будет выполнена через 4 секунды. Однако это может приостановить всю программу ...