Maison >Java >javaDidacticiel >Comment fonctionne Thread.interrupt() de Java et pourquoi n'est-il pas préemptif ?
Thread.interrupt() de Java dévoilé
La méthode java.lang.Thread.interrupt() joue un rôle crucial dans la gestion des interruptions de thread en Java. Lorsqu'il est invoqué, il définit un indicateur indiquant que le thread cible doit vérifier son état d'interruption.
Comment fonctionnent les interruptions
Les interruptions ne sont pas préventives en Java. Au lieu de cela, le thread cible doit interroger activement son état d'interruption. Pour ce faire, il utilise Thread.interrupted(), qui renvoie l'état du thread actuel et efface l'indicateur d'interruption. En règle générale, un thread interrompu gérera alors l'interruption de manière appropriée, par exemple en lançant une InterruptedException.
Points clés
Gestion des interruptions prédéfinies
Certaines méthodes API, telles que Object.wait (), Thread.sleep(), Thread.join(), les structures java.util.concurrent et Java NIO ont une gestion intégrée des interruptions. Ils consomment l'indicateur d'interruption et lèvent des exceptions appropriées (généralement InterruptedException).
Nature non préemptive
Il est important de noter que l'interruption en Java est un mécanisme non préemptif. . Les threads ont le choix de gérer ou non les interruptions. Cette approche douce permet aux threads de sortir proprement lorsque vous le souhaitez. En revanche, des méthodes telles que Thread.stop() terminent de force les threads, ce qui peut conduire à des résultats imprévisibles ou problématiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!