Pourquoi utiliser Thread.currentThread().isInterrupted() au lieu de isInterrupted()?

J'ai une question concernant la mise en œuvre d'une politique d'annulation pour une sous-classe de Thread. Il semble être une pratique courante de faire comme ceci:

class A extends Thread {

  [...]

  public final void run() {
     try {
        while(!Thread.currentThread().isInterrupted()) {
           [...]
        }
     } catch (InterruptedException consumed) {
     }
  }

  public final void cancel() {
     interrupt();
  }    
}

La question que j'ai est sur le Fil.currentThread()... Pourquoi est-il courant d'utiliser currentThread() pour le contrôle de l'interruption de drapeau, mais pas pour le paramètre dans la méthode cancel ()? Ne serait-il pas suffisant de simplement appeler le isInterrupted() la méthode de l'Une comme ceci:

while (!isInterrupted()) {
   [...]
}

Je n'ai pas trouvé de réponse ni dans le Fil JavaDoc, Brian Goetz' excellent livre sur simultanées Java ou stackoverflow.

Merci d'avance pour vos idées!

Cheers,
Georg

OriginalL'auteur BumbleGee | 2012-07-27