欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java多線程的sleep休眠的實(shí)現(xiàn)

 更新時(shí)間:2023年06月27日 08:53:41   作者:思誠(chéng)代碼塊  
本文主要介紹了Java多線程的sleep休眠的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

了解這樣的幾個(gè)概念:

1.sleep指向當(dāng)前線程阻塞的毫秒數(shù)(就是可以讓線程停一會(huì))

2.sleep 存在異常 InterruptedException3.sleep 時(shí)間達(dá)到后線程進(jìn)入就緒狀態(tài)4.sleep 可以模擬網(wǎng)絡(luò)延時(shí),倒計(jì)時(shí)等5.sleep 每一個(gè)對(duì)象都有一個(gè)鎖,sleep 不會(huì)釋放鎖

寫源碼:

package Demo04;
public class TestSleep  implements Runnable{     //使用Runnable方法創(chuàng)建程序線程
    private  int ticketNums =10;      //有10張票
    @Override
    public void run() {      //重寫run方法
        while (true){        //寫while  循環(huán)
            if (ticketNums<=0){       //當(dāng)票數(shù)小于等于0
                break;       //停止循環(huán)
            }
            System.out.println(Thread.currentThread().getName()+"-->拿到了第"+ticketNums--+"票");     //輸出信息
        }
    }
    public static void main(String[] args) {    //這是它的主線程
         TestSleep ticket = new TestSleep();        //創(chuàng)建對(duì)象
         new Thread(ticket,"小王").start();         //啟動(dòng)線程
         new Thread(ticket,"小李").start();
         new Thread(ticket,"小慧").start();
    }
}

看結(jié)果:

在這個(gè)結(jié)果當(dāng)中,有重復(fù),但是不明顯

加sleep 休眠

package Demo04;
public class TestSleep  implements Runnable{
    private  int ticketNums =10;
    @Override
    public void run() {
        while (true){
            if (ticketNums<=0){
                break;
            }
            try {
                Thread.sleep(5);      //讓線程睡了5秒的時(shí)間     (模擬網(wǎng)絡(luò)延遲)
            }catch (InterruptedException e){
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"-->拿到了第"+ticketNums--+"票");
        }
    }
    public static void main(String[] args) {
         TestSleep ticket = new TestSleep();
         new Thread(ticket,"小王").start();
         new Thread(ticket,"小李").start();
         new Thread(ticket,"小慧").start();
    }
}

看結(jié)果:

這樣的重復(fù)會(huì)很多,所以sleep(休眠),起到模擬網(wǎng)絡(luò)延遲的作用, 可以放大問題的可見性以及發(fā)生性

就是 ,有上面重復(fù)的 結(jié)果顯得明顯,即:多線程是不安全的

再寫一個(gè)實(shí)例:

模擬倒計(jì)時(shí):

package Demo04;
//模擬倒計(jì)時(shí)
public class TestSleep02 {
    public static void main(String[] args) {
        try {
            tenDown();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    public static void tenDown() throws InterruptedException {
        int num = 10;
        while (true) {
            Thread.sleep(1000);
            System.out.println(num--);
            if (num <= 0) {
                break;
            }
        }
    }
}

看結(jié)果

它的顯示結(jié)果:(注意: 1000ms=1秒)

就是它會(huì)從十到一每隔一秒顯示一個(gè)數(shù)字,一直到一

到此這篇關(guān)于Java多線程的sleep休眠的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java多線程sleep休眠內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的system.getProperty()的作用及使用方法

    Java中的system.getProperty()的作用及使用方法

    System.getProperty()?方法用于獲取系統(tǒng)屬性的值,該方法接受一個(gè)字符串參數(shù),表示要獲取的系統(tǒng)屬性的名稱,返回值為字符串類型,表示該屬性的值,接下來(lái)通過本文給大家介紹Java中的system.getProperty()的作用及使用方法,感興趣的朋友跟隨小編一起看看吧
    2023-05-05
  • Java 并發(fā)編程學(xué)習(xí)筆記之核心理論基礎(chǔ)

    Java 并發(fā)編程學(xué)習(xí)筆記之核心理論基礎(chǔ)

    編寫優(yōu)質(zhì)的并發(fā)代碼是一件難度極高的事情。Java語(yǔ)言從第一版本開始內(nèi)置了對(duì)多線程的支持,這一點(diǎn)在當(dāng)年是非常了不起的,但是當(dāng)我們對(duì)并發(fā)編程有了更深刻的認(rèn)識(shí)和更多的實(shí)踐后,實(shí)現(xiàn)并發(fā)編程就有了更多的方案和更好的選擇。本文是對(duì)并發(fā)編程的核心理論做了下小結(jié)
    2016-05-05
  • jdk中動(dòng)態(tài)代理異常處理分析:UndeclaredThrowableException

    jdk中動(dòng)態(tài)代理異常處理分析:UndeclaredThrowableException

    最近在工作中遇到了報(bào)UndeclaredThrowableException的錯(cuò)誤,通過查找相關(guān)的資料,終于解決了,所以這篇文章主要給大家介紹了關(guān)于jdk中動(dòng)態(tài)代理異常處理分析:UndeclaredThrowableException的相關(guān)資料,需要的朋友可以參考下
    2018-04-04
  • java判斷一個(gè)字符串是否是小數(shù)的方法

    java判斷一個(gè)字符串是否是小數(shù)的方法

    在本篇文章里小編給大家整理的是關(guān)于java判斷一個(gè)字符串是否是小數(shù)的方法,有需要的朋友們學(xué)習(xí)下。
    2019-11-11
  • IDEA創(chuàng)建Maven項(xiàng)目后報(bào)錯(cuò)不出現(xiàn)src文件夾的情況解決

    IDEA創(chuàng)建Maven項(xiàng)目后報(bào)錯(cuò)不出現(xiàn)src文件夾的情況解決

    最近剛開始學(xué)習(xí)maven,正準(zhǔn)備使用idea創(chuàng)建一個(gè)maven項(xiàng)目練手,卻發(fā)現(xiàn)自己創(chuàng)建的maven項(xiàng)目始終沒有src目錄,下面這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建Maven項(xiàng)目后報(bào)錯(cuò)不出現(xiàn)src文件夾的情況解決,需要的朋友可以參考下
    2023-05-05
  • SpringSecurity實(shí)現(xiàn)自定義登錄接口的詳細(xì)過程

    SpringSecurity實(shí)現(xiàn)自定義登錄接口的詳細(xì)過程

    本文詳細(xì)介紹了如何使用SpringSecurity實(shí)現(xiàn)自定義登錄接口,文章還涉及了對(duì)用戶實(shí)體類的增強(qiáng)以滿足詳細(xì)信息的需求,適合需要深入了解和實(shí)現(xiàn)SpringSecurity自定義登錄功能的開發(fā)者,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • jetbrain?fleet對(duì)標(biāo)vscode實(shí)際操作

    jetbrain?fleet對(duì)標(biāo)vscode實(shí)際操作

    Gradle是一個(gè)基于Apache Ant和Apache Maven概念項(xiàng)目自動(dòng)化構(gòu)建開源工具,jetbrain家的fleet(已獲得預(yù)覽權(quán)限)直接對(duì)標(biāo)vscode?,?fleet有望超過vscode嗎?今天我們實(shí)際操作下
    2021-12-12
  • maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bindings處理方法

    maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bi

    這篇文章主要給大家介紹了關(guān)于maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bindings的處理方法,這個(gè)問題通常是因?yàn)轫?xiàng)目中存在多個(gè)SLF4J的實(shí)現(xiàn)綁定(bindings)導(dǎo)致的沖突,需要的朋友可以參考下
    2024-02-02
  • java開發(fā)web前端cookie session及token會(huì)話機(jī)制詳解

    java開發(fā)web前端cookie session及token會(huì)話機(jī)制詳解

    如果把人體比作一個(gè)web系統(tǒng)的話,cookie、session和token就好像人體的經(jīng)絡(luò)和血管一樣,而web系統(tǒng)中的數(shù)據(jù),就好像人體的血液一樣。血液依靠著血管在人體內(nèi)流動(dòng),就如數(shù)據(jù)根據(jù)cookie和session機(jī)制在web系統(tǒng)中流動(dòng)一樣
    2021-10-10
  • java利用DFA算法實(shí)現(xiàn)敏感詞過濾功能

    java利用DFA算法實(shí)現(xiàn)敏感詞過濾功能

    在最近的開發(fā)中遇到了敏感詞過濾,便去網(wǎng)上查閱了很多敏感詞過濾的資料,在這里也和大家分享一下自己的理解。下面這篇文章主要給大家介紹了關(guān)于java利用DFA算法實(shí)現(xiàn)敏感詞過濾功能的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-06-06

最新評(píng)論