中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
大新县| 濮阳市| 阜阳市| 全南县| 阳高县| 久治县| 桑日县| 博罗县| 江陵县| 辉南县| 库车县| 新泰市| 衡水市| 凭祥市| 烟台市| 吉安县| 平原县| 多伦县| 汕头市| 赫章县| 夏河县| 桐城市| 枣庄市| 贞丰县| 武定县| 石楼县| 太保市| 云梦县| 曲阜市| 平舆县| 安丘市| 仪陇县| 泗水县| 宁都县| 太原市| 清苑县| 宁城县| 威海市| 轮台县| 三台县| 朝阳市|