new Runnable () mais pas de nouveau thread?

J'essaie de comprendre le code ici , plus précisément de la classe anonyme

private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
   final long start = mStartTime;
   long millis = SystemClock.uptimeMillis() - start;
   int seconds = (int) (millis / 1000);
   int minutes = seconds / 60;
   seconds     = seconds % 60;

   if (seconds < 10) {
       mTimeLabel.setText("" + minutes + ":0" + seconds);
   } else {
       mTimeLabel.setText("" + minutes + ":" + seconds);            
   }

   mHandler.postAtTime(this,
           start + (((minutes * 60) + seconds + 1) * 1000));
   }
};

Le dit l'article

Le Gestionnaire exécute la mise à jour du code en tant que partie de votre thread principal, en évitant la surcharge d'un deuxième thread..

Ne devrait pas créer une nouvelle classe Runnable faire un nouveau thread? Quel est le but de la classe Runnable ici, en plus d'être en mesure de passer à une classe Runnable à postAtTime?

Grâce

source d'informationauteur sgarg