Javaで毎分、0秒になったら処理を行いたいのですがどうすればいいのでしょうか?

下の例のようにwhileを使う方法もありますが、getInstanceを何度も呼び出しているので、あまりいい方法ではないように思います。

Timerやscheduleを見ても、指定した秒数後に処理を実行することはできるようですが、指定秒になったら実行するようなものはありませんでした。

何か他にいい方法はあるのでしょうか?


Calendar cal;
while (true) {
    cal = Calendar.getInstance();
    if (cal.get(Calendar.SECOND) == 0) { // もし、calの秒が0秒なら
        // do something...
    }
}