"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como garantir que o thread principal aguarde a conclusão de vários processos encadeados?

Como garantir que o thread principal aguarde a conclusão de vários processos encadeados?

Publicado em 2024-11-11
Navegar:514

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

Aguardando a conclusão de vários processos encadeados

Neste trecho de código, você tem vários threads criados, cada um executando uma tarefa dentro de seu próprio thread de execução. Para garantir que o thread principal aguarde que todos os subthreads concluam sua execução antes de prosseguir, você pode implementar a seguinte abordagem:

  1. Armazenar Threads em um Array: Crie um array para armazenar todos os threads criados. Isso garante o rastreamento organizado de seu status de conclusão.
  2. Iniciar todos os threads: Faça um loop pela matriz de threads e inicie cada thread usando o método start().
  3. Junte Threads em um Loop: Depois de iniciar todos os threads, adicione um loop para unir cada thread no array. O método join() bloqueia o thread de chamada (neste caso, o thread principal) até que o thread de destino conclua sua execução.
// ... (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 

Ao usar o método join(), o thread principal é bloqueado até que todos os subthreads tenham concluído sua execução, garantindo que seu programa aguarde a conclusão de todas as tarefas antes de prosseguir com o código que segue o loop. Essa abordagem oferece controle e garante que os recursos sejam liberados e que o programa termine corretamente.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3