亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java wait方法如何喚醒線程

小樊
81
2024-11-26 19:37:28
欄目: 編程語言

在Java中,wait()方法用于讓當前線程等待,直到其他線程調用同一個對象的notify()notifyAll()方法。當線程被喚醒后,它需要重新獲取對象的鎖,然后才能繼續執行。

以下是一個簡單的示例,說明如何使用wait()notify()方法喚醒線程:

public class WaitNotifyExample {
    private static final Object lock = new Object();
    private static boolean condition = false;

    public static void main(String[] args) {
        Thread thread1 = new Thread(() -> {
            synchronized (lock) {
                System.out.println("Thread 1: Waiting for condition...");
                try {
                    lock.wait(); // 當前線程等待
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("Thread 1: Condition met, continuing execution...");
            }
        });

        Thread thread2 = new Thread(() -> {
            synchronized (lock) {
                try {
                    Thread.sleep(2000); // 讓線程1等待一段時間
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("Thread 2: Setting condition to true...");
                condition = true;
                lock.notify(); // 喚醒線程1
            }
        });

        thread1.start();
        thread2.start();
    }
}

在這個示例中,我們有兩個線程:thread1thread2thread1首先進入wait()方法等待條件滿足。thread2在等待一段時間后,將條件設置為true,然后調用notify()方法喚醒thread1thread1被喚醒后,重新獲取鎖并繼續執行。

0
汉中市| 沂南县| 壤塘县| 张家港市| 保康县| 柘荣县| 磐石市| 门头沟区| 麻江县| 介休市| 揭阳市| 南汇区| 凤庆县| 乌兰察布市| 镇平县| 商南县| 沂源县| 潮安县| 兴仁县| 西盟| 藁城市| 临沂市| 凤阳县| 小金县| 宜良县| 嵩明县| 施甸县| 平邑县| 富阳市| 正镶白旗| 五大连池市| 册亨县| 偃师市| 娄烦县| 台湾省| 来宾市| 和龙市| 大宁县| 谷城县| 库尔勒市| 蓬莱市|