最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Thread之Sleep()案例詳解

 更新時(shí)間:2021年08月14日 10:24:28   作者:每天都要進(jìn)步一點(diǎn)點(diǎn)  
這篇文章主要介紹了Java Thread之Sleep()案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

一、API簡(jiǎn)介

Thread.sleep()是Thread類的一個(gè)靜態(tài)方法,使當(dāng)前線程休眠,進(jìn)入阻塞狀態(tài)(暫停執(zhí)行),如果線程在睡眠狀態(tài)被中斷,將會(huì)拋出IterruptedException中斷異常。。主要方法如下:

【a】sleep(long millis)  線程睡眠 millis 毫秒

【b】sleep(long millis, int nanos)  線程睡眠 millis 毫秒 + nanos 納秒

Api文檔:

二、使用方法

注意:在哪個(gè)線程里面調(diào)用sleep()方法就阻塞哪個(gè)線程。

public class SleepDemo {
    public static void main(String[] args) throws InterruptedException {
        Process process = new Process();
        Thread thread = new Thread(process);
        thread.setName("線程Process");
        thread.start();
 
        for (int i = 0; i < 10; i++) {
            System.out.println(Thread.currentThread().getName() + "-->" + i);
            //阻塞main線程,休眠一秒鐘
            Thread.sleep(1000);
        }
    }
}
 
/**
 * 線程類
 */
class Process implements Runnable {
 
    @Override
    public void run() {
 
        for (int i = 0; i < 10; i++) {
            System.out.println(Thread.currentThread().getName() + "-->" + i);
 
            //休眠一秒鐘
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
 
    }
}

執(zhí)行結(jié)果:main線程執(zhí)行一次之后休眠一秒鐘,讓出cpu,此時(shí)Process線程執(zhí)行一次然后又休眠一秒,依次執(zhí)行。

三、示例

下面以一個(gè)倒計(jì)時(shí)的功能來進(jìn)一步說明sleep()方法的使用:

/**
 * @Description: 線程休眠Sleep()方法
 * @Author: weishihuai
 * @Date: 2018/11/11 21:31
 * <p>
 * 1. 注意:sleep()方法使用的位置,如果使用在main線程執(zhí)行代碼中,則阻塞的是main線程。如果在其他線程執(zhí)行的代碼中,則阻塞的是執(zhí)行這些代碼的線程
 * 2. 案例: 倒計(jì)時(shí)功能
 */
public class TestSleepThread {
    public static void main(String[] args) throws InterruptedException {
        countDown(10000);
    }
 
    /**
     * 倒計(jì)時(shí)方法
     *
     * @param mills 倒計(jì)時(shí)開始的時(shí)間距離當(dāng)前時(shí)間多少毫秒
     */
    public static void countDown(long mills) {
        Date endDate = new Date(System.currentTimeMillis() + mills);
        long endTime = endDate.getTime();
 
        while (true) {
            System.out.println(new SimpleDateFormat("hh:mm:ss").format(endDate));
            //下一秒時(shí)間
            endDate = new Date(endDate.getTime() - 1000);
            //休眠一秒鐘
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if (endTime - endDate.getTime() > mills) {
                break;
            }
        }
    }
 
}

執(zhí)行結(jié)果:

四、注意問題

【a】sleep()方法是Thread類的靜態(tài)方法,如果調(diào)用線程對(duì)象.sleep()方法并不是該線程就休眠,反正在哪一個(gè)線程里面執(zhí)行了sleep()方法哪一個(gè)線程就休眠。

【b】線程睡眠到期自動(dòng)蘇醒,并返回到可運(yùn)行狀態(tài)(就緒),不是運(yùn)行狀態(tài)。

到此這篇關(guān)于Java Thread之Sleep()案例詳解的文章就介紹到這了,更多相關(guān)Java Thread之Sleep()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java負(fù)載均衡服務(wù)器實(shí)現(xiàn)上傳文件同步

    Java負(fù)載均衡服務(wù)器實(shí)現(xiàn)上傳文件同步

    這篇文章主要介紹了Java負(fù)載均衡服務(wù)器實(shí)現(xiàn)上傳文件同步,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java經(jīng)典面試題匯總:JVM

    Java經(jīng)典面試題匯總:JVM

    本篇總結(jié)的是JVM相關(guān)的面試題,后續(xù)會(huì)持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實(shí)習(xí)生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯(cuò)誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • Java異常處理及自定義異常詳細(xì)指南

    Java異常處理及自定義異常詳細(xì)指南

    異常處理是Java編程中的一個(gè)重要部分,用于處理程序執(zhí)行中出現(xiàn)的異常情況,此外還可以自定義異常來處理特定的錯(cuò)誤情況,掌握這些異常處理技術(shù)對(duì)于編寫健壯、可靠的Java程序至關(guān)重要,需要的朋友可以參考下
    2024-10-10
  • elasticsearch索引index之Translog數(shù)據(jù)功能分析

    elasticsearch索引index之Translog數(shù)據(jù)功能分析

    這篇文章主要為大家介紹了elasticsearch索引index之Translog數(shù)據(jù)功能分析,主要分析translog的結(jié)構(gòu)及寫入方式,有需要的朋友可以借鑒參考下
    2022-04-04
  • Java基于jdbc連接mysql數(shù)據(jù)庫(kù)操作示例

    Java基于jdbc連接mysql數(shù)據(jù)庫(kù)操作示例

    這篇文章主要介紹了Java基于jdbc連接mysql數(shù)據(jù)庫(kù)操作,結(jié)合完整實(shí)例形式分析了java使用jdbc連接mysql數(shù)據(jù)庫(kù)的具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-07-07
  • Java實(shí)現(xiàn)簡(jiǎn)單訂餐系統(tǒng)

    Java實(shí)現(xiàn)簡(jiǎn)單訂餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單訂餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • SpringCloud微服務(wù)之Config知識(shí)總結(jié)

    SpringCloud微服務(wù)之Config知識(shí)總結(jié)

    今天帶大家學(xué)習(xí)SpringCloud微服務(wù)中的Config的相關(guān)知識(shí),文中有非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)SpringCloud微服務(wù)的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • 謹(jǐn)慎使用Java8的默認(rèn)方法

    謹(jǐn)慎使用Java8的默認(rèn)方法

    為什么要謹(jǐn)慎使用Java8的默認(rèn)方法?本文給出了為什么要慎用Java8默認(rèn)方法的原因,解釋的很詳細(xì),感興趣的朋友可以參考一下
    2016-01-01
  • JVM類加載之雙親委派機(jī)制解讀

    JVM類加載之雙親委派機(jī)制解讀

    這篇文章主要介紹了JVM類加載之雙親委派機(jī)制解讀,類加載階段分為加載、連接、初始化三個(gè)階段,而加載階段需要通過類的全限定名來獲取定義了此類的二進(jìn)制字節(jié)流,Java特意把這一步抽出來用類加載器來實(shí)現(xiàn),需要的朋友可以參考下
    2023-12-12
  • 10分鐘帶你理解Java中的反射

    10分鐘帶你理解Java中的反射

    反射是java中一種強(qiáng)大的工具,能夠使我們很方便的創(chuàng)建靈活的代碼,這篇文章帶大家十分鐘快速理解Java中的反射,有需要的可以參考借鑒。
    2016-08-08

最新評(píng)論

安丘市| 凤山县| 黄石市| 麻阳| 永修县| 金堂县| 甘孜| 霍林郭勒市| 卓资县| 海丰县| 磴口县| 宁晋县| 古交市| 肇东市| 漳浦县| 尖扎县| 灯塔市| 阜康市| 盐亭县| 丹棱县| 庄河市| 江油市| 嘉祥县| 莫力| 洞头县| 墨玉县| 拉萨市| 惠来县| 陈巴尔虎旗| 临汾市| 洛宁县| 隆回县| 百色市| 深泽县| 肃宁县| 灌云县| 扎囊县| 牙克石市| 毕节市| 新源县| 辽阳市|