Maison  >  Article  >  Java  >  Trois façons de terminer un fil de discussion en Java

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

小老鼠
小老鼠original
2024-04-17 05:09:15506parcourir

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>

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>

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>

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!

Déclaration:
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