Maison > Java > javaDidacticiel > Comment s'assurer que le thread principal attend la fin de plusieurs processus threadés ?

Comment s'assurer que le thread principal attend la fin de plusieurs processus threadés ?

Barbara Streisand
Libérer: 2024-10-31 02:31:29
original
753 Les gens l'ont consulté

How to Ensure the Main Thread Waits for Completion of Multiple Threaded Processes?

En attente de la fin de plusieurs processus threadés

Dans cet extrait de code, vous avez créé plusieurs threads, chacun exécutant une tâche dans son propre thread d'exécution. Pour vous assurer que le thread principal attend que tous les sous-threads terminent leur exécution avant de continuer, vous pouvez implémenter l'approche suivante :

  1. Stocker les threads dans un tableau : Créer un tableau pour stocker tous les threads créés. Cela garantit un suivi organisé de leur statut d'achèvement.
  2. Démarrer tous les threads : Parcourez le tableau des threads et démarrez chaque thread à l'aide de la méthode start().
  3. Rejoignez les threads dans une boucle : Après avoir démarré tous les threads, ajoutez une boucle pour rejoindre chaque thread du tableau. La méthode join() bloque le thread appelant (dans ce cas, le thread principal) jusqu'à ce que le thread cible termine son exécution.
<code class="java">// ... (code as before)

public class DoSomethingInAThread implements Runnable {

    public static void main(String[] args) {
        Thread[] threads = new Thread[1000];  // Assume 1000 threads for example
        
        // Start all threads
        for (int n = 0; n < 1000; n++) {
            threads[n] = new Thread(new DoSomethingInAThread());
            threads[n].start();
        }
        
        // Wait for all threads to complete
        for (int i = 0; i < threads.length; i++) {
            threads[i].join();
        }
    }

    public void run() {
        // ... (code as before)
    }
}</code>
Copier après la connexion

En utilisant la méthode join(), le thread principal bloque jusqu'à ce que tous les sous-threads aient terminé leur exécution, en veillant à ce que votre programme attende la fin de toutes les tâches avant de poursuivre le code qui suit la boucle. Cette approche vous donne le contrôle et garantit que les ressources sont libérées et que le programme se termine correctement.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal