"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-11
Parcourir:162

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 garantir 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éez un tableau pour stocker tous les threads créés. Cela garantit un suivi organisé de leur état 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. Rejoindre 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 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 

En utilisant la méthode join(), le thread principal se bloque jusqu'à ce que tous les sous-threads aient terminé leur exécution, garantissant que votre programme attend 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3