Comment planifier une tâche pour qu'elle s'exécute une fois?

Je veux retarder de faire quelque chose le long des lignes de paramètre de compte à rebours qui va "faire une chose" après un certain laps de temps.

Je veux le reste de mon programme de continuer à fonctionner pendant que j'attends, alors, j'ai essayé de faire mon propre Thread qui contenait une minute de retard:

public class Scratch {
    private static boolean outOfTime = false;

    public static void main(String[] args) {
        Thread countdown = new Thread() {
            @Override
            public void run() {
                try {
                    //wait a while
                    System.out.println("Starting one-minute countdown now...");
                    Thread.sleep(60 * 1000);

                    //do the thing
                    outOfTime = true;
                    System.out.println("Out of time!");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };
        countdown.start();

        while (!outOfTime) {
            try {
                Thread.sleep(1000);
                System.out.println("do other stuff here");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}


Bien que cela a fonctionné, plus ou moins, il me semblait qu'il y devrait y avoir une meilleure façon de le faire.

Après quelques recherches, j'ai trouvé un tas de questions de ce genre, mais ils n'ont pas vraiment répondre à ce que je suis en train de faire:

Je n'ai pas besoin de rien de compliqué, je veux juste faire une seule chose après un certain laps de temps, tout en laissant le reste du programme continuent de fonctionner.

Comment dois-je aller sur la planification d'une tâche de temps de "faire quelque chose"?

source d'informationauteur azurefrog