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

溫馨提示×

java wait方法如何設置超時

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

在Java中,wait()方法可以與synchronized關鍵字和Object.notify()Object.notifyAll()方法一起使用,以便在等待某個條件滿足時喚醒線程。為了設置超時,您可以使用Thread.sleep()方法在循環中檢查條件是否滿足。以下是一個示例:

public class WaitWithTimeoutExample {
    private static final Object lock = new Object();
    private static boolean conditionMet = false;

    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            synchronized (lock) {
                try {
                    System.out.println("Waiting for condition to be met...");
                    while (!conditionMet) { // 使用循環檢查條件是否滿足
                        lock.wait(1000); // 設置超時時間為1000毫秒(1秒)
                    }
                    System.out.println("Condition is met. Exiting thread.");
                } catch (InterruptedException e) {
                    System.out.println("Thread was interrupted.");
                }
            }
        });

        thread.start();

        try {
            Thread.sleep(2000); // 讓主線程等待2秒,以便子線程有機會執行
        } catch (InterruptedException e) {
            System.out.println("Main thread was interrupted.");
        }

        synchronized (lock) {
            conditionMet = true; // 設置條件以滿足
            lock.notify(); // 喚醒等待的線程
        }
    }
}

在這個示例中,我們設置了一個1秒的超時時間,如果在這個時間內條件沒有滿足,線程將退出等待。請注意,這個示例僅用于演示目的,實際應用中可能需要根據具體需求進行調整。

0
岑巩县| 宝丰县| 义乌市| 惠水县| 钦州市| 兴山县| 邹平县| 孟村| 龙岩市| 赤城县| 镇坪县| 宜章县| 中西区| 南康市| 阿克| 进贤县| 林甸县| 海口市| 蒲江县| 临泽县| 乌拉特中旗| 巫溪县| 揭东县| 平安县| 行唐县| 和平区| 和顺县| 墨江| 康定县| 敦煌市| 海南省| 靖江市| 巢湖市| 穆棱市| 镇原县| 南丰县| 祁连县| 滁州市| 武安市| 广州市| 横山县|