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

Bagaimana Menunggu Berbilang Benang untuk Selesai Pelaksanaan Sebelum Meneruskan?

Linda Hamilton
Lepaskan: 2024-10-27 10:17:03
asal
353 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan