Home > Java > javaTutorial > body text

How to Ensure Main Thread Execution After Multiple Threads Complete?

Mary-Kate Olsen
Release: 2024-10-28 02:50:02
Original
223 people have browsed it

How to Ensure Main Thread Execution After Multiple Threads Complete?

Waiting for Completion of Multiple Threads

In the scenario you've described, where multiple threads are created and each runs the same task independently, it becomes necessary to find a way to pause the main thread until all the spawned threads have finished executing. This is essential to ensure proper coordination and prevent the main thread from proceeding before the secondary threads are complete.

One effective solution involves creating an array of Thread objects to store all the spawned threads, starting them concurrently, and then implementing a loop that calls the join() method on each thread in the array. The join() method blocks the calling thread until the thread it's called on exits.

By incorporating this loop into your DoSomethingInAThread class, you can reliably wait for all secondary threads to complete before continuing execution of the main thread:

<code class="java">// Array to store created threads
private static Thread[] threads;

public static void main(String[] args) {
    // Create an array to store the threads
    threads = new Thread[1000];

    // Start all the threads
    for (int n = 0; n < 1000; n++) {
        Thread t = new Thread(new DoSomethingInAThread());
        t.start();
        // Save the reference to the created thread
        threads[n] = t;
    }

    // Wait for all threads to complete
    for (int i = 0; i < threads.length; i++) {
        threads[i].join();
    }</code>
Copy after login

By modifying the main() method as shown above, the main thread will only proceed once all the secondary threads have completed executing. This technique ensures that the main thread's execution is synchronized with the completion of all its child threads.

The above is the detailed content of How to Ensure Main Thread Execution After Multiple Threads Complete?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!