Rumah  >  Artikel  >  Java  >  Bagaimana Menunggu Berbilang Benang untuk Selesai Pelaksanaan Sebelum Meneruskan?

Bagaimana Menunggu Berbilang Benang untuk Selesai Pelaksanaan Sebelum Meneruskan?

Linda Hamilton
Linda Hamiltonasal
2024-10-27 10:17:03276semak imbas

How to Wait for Multiple Threads to Finish Execution Before Proceeding?

Cara Menyegerakkan Pelaksanaan Berbilang Benang

Dalam aplikasi berbilang benang, selalunya perlu untuk menyelaraskan pelaksanaan tugasan selari. Artikel ini meneroka kaedah untuk menunggu sekumpulan urutan selesai sebelum meneruskan.

Masalahnya:

Pertimbangkan kod berikut:

<code class="java">public class DoSomethingInAThread implements Runnable {...}

public static void main(String[] args) {
    for (int n=0; n<1000; n++) {
        Thread t = new Thread(new DoSomethingInAThread());
        t.start();
    }
    // wait for all threads' run() methods to complete before continuing
}</code>

Dalam contoh ini, berbilang urutan baharu dicipta dan dimulakan. Walau bagaimanapun, kaedah main() meneruskan pelaksanaan serta-merta, tanpa menunggu urutan ini menyelesaikan tugasan mereka.

Penyelesaian:

Untuk menyegerakkan pelaksanaan, kita boleh mencipta tatasusunan rujukan benang dan kemudian gunakan kaedah join() pada setiap objek utas. Ini menyekat utas semasa sehingga utas sasaran telah menyelesaikan pelaksanaannya:

<code class="java">import java.lang.Thread;

public class DoSomethingInAThread implements Runnable {...}

public static void main(String[] args) {
    Thread[] threads = new Thread[1000];
    for (int n=0; n<threads.length; n++) {
        threads[n] = new Thread(new DoSomethingInAThread());
        threads[n].start();
    }
    for (Thread t: threads) {
        t.join();
    }
}</code>

Dalam kod yang disemak ini, kaedah main() mencipta tatasusunan rujukan utas dan memulakan setiap utas. Ia kemudian memasuki gelung yang memanggil join() pada setiap utas dalam tatasusunan. Ini memastikan bahawa semua urutan menyelesaikan tugas mereka sebelum kaedah main() diteruskan.

Atas ialah kandungan terperinci Bagaimana Menunggu Berbilang Benang untuk Selesai Pelaksanaan Sebelum Meneruskan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn