91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
班玛县| 台安县| 四会市| 北碚区| 建宁县| 佛冈县| 三明市| 崇礼县| 棋牌| 报价| 塘沽区| 隆子县| 沅江市| 长汀县| 鄯善县| 河源市| 景泰县| 鄢陵县| 清徐县| 彭州市| 资源县| 庆阳市| 西畴县| 福泉市| 龙陵县| 清丰县| 古交市| 神木县| 巧家县| 北安市| 正定县| 建始县| 渭源县| 临江市| 康定县| 凯里市| 南汇区| 留坝县| 五常市| 唐河县| 汉川市|