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

溫馨提示×

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
杂多县| 靖边县| 安陆市| 大竹县| 福海县| 蒲城县| 宁明县| 恩平市| 梅河口市| 景宁| 成武县| 特克斯县| 新乡市| 屏山县| 连城县| 贵阳市| 浙江省| 虞城县| 城固县| 裕民县| 碌曲县| 鹤岗市| 蒙城县| 弋阳县| 崇义县| 彭泽县| 朝阳县| 望奎县| 应用必备| 弥勒县| 河源市| 永嘉县| 泊头市| 广西| 平果县| 石台县| 北辰区| 宣威市| 诸城市| 永济市| 芦溪县|