«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как гарантировать, что основной поток ожидает завершения многопоточных процессов?

Как гарантировать, что основной поток ожидает завершения многопоточных процессов?

Опубликовано 11 ноября 2024 г.
Просматривать:769

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

Ожидание завершения многопоточных процессов

В этом фрагменте кода создано несколько потоков, каждый из которых выполняет задачу в своем собственном потоке исполнения. Чтобы гарантировать, что основной поток ожидает завершения выполнения всех подпотоков, прежде чем продолжить, вы можете реализовать следующий подход:

  1. Сохраните потоки в массиве: Создайте массив для хранения всех созданных потоков. Это обеспечивает организованное отслеживание статуса их завершения.
  2. Запуск всех потоков: Прокрутите массив потоков и запустите каждый поток с помощью метода start().
  3. Объединение потоков в цикле: После запуска всех потоков добавьте цикл для объединения каждого потока в массиве. Метод join() блокирует вызывающий поток (в данном случае основной поток) до тех пор, пока целевой поток не завершит свое выполнение.
// ... (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 

При использовании метода join() основной поток блокируется до тех пор, пока все подпотоки не завершат свое выполнение, гарантируя, что ваша программа ожидает завершения всех задач, прежде чем приступить к выполнению кода, следующего за циклом. Такой подход дает вам контроль и гарантирует, что ресурсы будут освобождены, а программа завершится правильно.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3