sleep與wait是否會佔用cpu時間

轉載原文:https://blog.csdn.net/lz710117239/article/details/79288605

轉載作者:lz710117239

 

一直對sleep與wait除了使用方法上的卻別外,還對它們是否會佔用cpu時間產生了疑惑,故此做了個實驗如下:

 

上圖中是什麼代碼都沒有執行的時候的cpu利用率,下面我們執行這段代碼:

    public static void main(String[] args) {
        for (int i = 0; i < 10000000; i++) {
            System.out.println("dfdf");
            System.out.println(456 + 567);
        }
    }


可以看出cpu的利用率飆升到了65%,這時候cpu佔用率已經很高了。

下面我們測試sleep的情況:

    public static void main(String[] args) {
        for (int i = 0; i < 10000000; i++) {
            try {
                Thread.sleep(100000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }


上圖可見cpu的利用率還是在7%左右,由此可以證明sleep方法並不會佔用cpu的時間

下面我們測試wait方法:

    public static void main(String[] args) {
        for (int i = 0; i < 10000000; i++) {
            Object o = new Object();
            synchronized (o) {
                try {
                    o.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }

我們可以看到cpu的利用率還是維持在6%左右的,由此得出結論sleep()與wait()方法都不佔用cpu時間及利用率

 

原作者信息:
作者:lz710117239 
來源:CSDN 
原文:https://blog.csdn.net/lz710117239/article/details/79288605 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章