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 :
<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>
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!