現在のメソッドをブロックせずに一定期間後にコードを実行する必要があります。 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");
}
問題は、最初のアプリをブロックしそして第二は、それが終了するまで終了し、メイン許可しないことです。
時間を置いてコードを実行して、スケジューリングした直後に現在のメソッドを終了するにはどうすればよいですか?
あなたは何をしようとしていますか? 2番目の方法では、非同期的に\tを実行します。つまり、メソッドをブロックしません。 – Anthales