Maison > Java > javaDidacticiel > le corps du texte

Trois façons de terminer un fil de discussion en Java

小老鼠
Libérer: 2024-04-17 05:09:15
original
516 Les gens l'ont consulté

Les trois façons de terminer un thread en Java sont : utiliser la méthode stop() (qui n'est plus recommandée) ; utiliser la méthode interrompue() pour envoyer un signal d'interruption ; utiliser la méthode join() pour laisser le thread principal attendre ; le thread cible à terminer.

Trois façons de terminer un fil de discussion en Java

Trois façons de terminer un fil de discussion en Java

En Java, il existe plusieurs façons de terminer un fil de discussion. Les trois méthodes les plus couramment utilisées sont présentées ci-dessous :

1. Utilisez la méthode stop()

Remarque : La méthode stop() n'est plus recommandée car elle mettra directement fin au thread, ce qui peut entraîner une corruption des données. ou d'autres problèmes.

<code class="java">public class Main {
    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            // 线程任务
        });

        thread.start();
        thread.stop();
    }
}</code>
Copier après la connexion

2. Utilisez la méthode interruption()

interrupt() enverra un signal d'interruption au thread, et le thread pourra déterminer si le signal d'interruption a été reçu en vérifiant Thread.interrupted().

<code class="java">public class Main {
    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            while (!Thread.interrupted()) {
                // 线程任务
            }
        });

        thread.start();
        thread.interrupt();
    }
}</code>
Copier après la connexion

3. Utilisez la méthode join()

join() fera que le thread principal attendra que le thread cible termine son exécution. Lorsque le thread cible est terminé, le thread principal poursuivra son exécution.

<code class="java">public class Main {
    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            // 线程任务
        });

        thread.start();
        try {
            thread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal