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

溫馨提示×

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
长宁区| 威海市| 怀远县| 陇南市| 安化县| 上杭县| 杭州市| 平定县| 湟中县| 梁山县| 东乌珠穆沁旗| 桐庐县| 贵州省| 凤山县| 乳山市| 黑山县| 理塘县| 运城市| 开平市| 广汉市| 和政县| 左云县| 诸暨市| 金沙县| 祥云县| 伽师县| 开远市| 环江| 沙雅县| 轮台县| 嘉峪关市| 古交市| 扎赉特旗| 沁阳市| 郧西县| 洮南市| 禹州市| 舒兰市| 岑溪市| 莱芜市| 延边|