Rumah  >  Artikel  >  Java  >  Java menggunakan fungsi sleep() kelas Thread untuk menjeda pelaksanaan thread

Java menggunakan fungsi sleep() kelas Thread untuk menjeda pelaksanaan thread

WBOY
WBOYasal
2023-07-24 12:07:561690semak imbas

Java menggunakan fungsi sleep() kelas Thread untuk menjeda pelaksanaan thread

Di Java, thread ialah unit asas pelaksanaan serentak. Untuk merealisasikan penggantungan dan kawalan thread, Java menyediakan kaedah sleep() kelas Thread. Kaedah sleep() membenarkan benang berhenti seketika untuk tempoh masa sebelum meneruskan pelaksanaan. Artikel ini akan memperkenalkan cara menggunakan kaedah sleep() untuk menjeda pelaksanaan urutan, dengan contoh kod.

Kaedah sleep() kelas Thread ialah kaedah statik, yang boleh dipanggil terus melalui kelas Thread. Prototaip kaedah ini adalah seperti berikut:

tidur kekosongan statik awam(millis panjang)

            throws InterruptedException

di mana, parameter millis mewakili bilangan milisaat untuk dijeda. Apabila kaedah sleep() dipanggil, utas semasa akan menggantung pelaksanaan, memasuki keadaan menyekat dan secara automatik bangun untuk meneruskan pelaksanaan selepas bilangan milisaat yang ditentukan. Perlu diingatkan bahawa kaedah sleep() akan membuang InterruptedException, jadi pengendalian pengecualian diperlukan apabila menggunakan kaedah ini.

Berikut ialah contoh mudah yang menunjukkan cara menggunakan kaedah sleep() untuk menjeda pelaksanaan utas:

public class SleepExample {

    public static void main(String[] args) {
        // 创建一个新线程
        Thread thread = new Thread(new MyRunnable());

        // 启动线程
        thread.start();

        try {
            // 主线程暂停500毫秒
            Thread.sleep(500);

            // 中断线程
            thread.interrupt();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    static class MyRunnable implements Runnable {

        @Override
        public void run() {
            try {
                // 线程执行任务
                System.out.println("线程开始执行任务");

                // 线程暂停1秒
                Thread.sleep(1000);

                // 继续执行任务
                System.out.println("线程继续执行任务");
            } catch (InterruptedException e) {
                // 线程被中断,抛出异常
                System.out.println("线程被中断,任务终止");
                return;
            }

            // 线程执行完成
            System.out.println("线程任务执行完成");
        }
    }
}

Dalam contoh di atas, utas baharu mula-mula dibuat dan dimulakan. Kemudian, utas utama memanggil kaedah sleep() untuk menjeda pelaksanaan selama 500 milisaat, dan kemudian mengganggu urutan baharu. Dalam kaedah run() thread baharu, benang pertama mengeluarkan "benang mula melaksanakan tugas", kemudian memanggil kaedah sleep() untuk menjeda pelaksanaan selama 1 saat, dan akhirnya mengeluarkan "benang terus melaksanakan tugas". Jika utas utama mengganggu utas baharu sebelum utas baharu memanggil kaedah sleep(), utas baharu akan membuang InterruptedException dan mengeluarkan "The thread was interrupted and the task was terminated".

Dengan menggunakan kaedah sleep() kelas Thread, kami boleh mengawal penggantungan dan penyambungan semula benang dengan tepat untuk mencapai penyelarasan dan penyegerakan antara benang dalam pengaturcaraan berbilang benang.

Atas ialah kandungan terperinci Java menggunakan fungsi sleep() kelas Thread untuk menjeda pelaksanaan thread. 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