Мне нужно запустить некоторый код через определенный промежуток времени, не блокируя текущий метод.Запуск метода задержки Java
Я попытался следующие 2 подхода:
public static void main(final String[] args) {
System.out.println("Start");
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println("done");
this.cancel();
}
}, 4000L);
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.schedule(new Runnable() {
public void run() {
System.out.println("done");
}
}, 2, TimeUnit.SECONDS);
executor.shutdown();
System.out.println("Stop");
}
Проблема заключается в том, что первый блок делает приложение и второй не позволяет основной для выхода, пока он не закончит;
Как запустить код через некоторое время и выйти из текущего метода сразу после его планирования?
Что вы пытаетесь сделать? Второй подход _will_ запускает \t асинхронно, т. Е. Не блокирует ваши методы! – Anthales