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

java多線程實現(xiàn)同步鎖賣票實戰(zhàn)項目

 更新時間:2023年01月28日 11:25:43   作者:023的小陳  
本文主要介紹了java多線程實現(xiàn)同步鎖賣票實戰(zhàn)項目,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

同步概念與方法:

窗口類:

public class Ticket implements Runnable{
    int tickets=20;//總共20張票
    @Override
    public  void run() {
        while (tickets>0) {
            synchronized (this) {
                if(tickets>0) {
                    //售票
                    try {
                        System.out.println(Thread.currentThread().getName()+"正在售票");
                        Thread.sleep(200);//模擬售票操作時間
                        tickets--;//完成售票
                        System.out.println(Thread.currentThread().getName()+"售票完成,"+"剩余"+tickets+"張票");
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

測試類:

public class Test {
    public static void main(String[] args) {
        Ticket ticket = new Ticket();
 
        //模擬三個窗口售票
        Thread t1=new Thread(ticket);
        t1.setName("窗口1");
        t1.start();
 
        Thread t2=new Thread(ticket);
        t2.setName("窗口2");
        t2.start();
 
        Thread t3=new Thread(ticket);
        t3.setName("窗口3");
        t3.start();
    }
}

測試結(jié)果:

窗口1正在售票
窗口1售票完成,剩余19張票
窗口1正在售票
窗口1售票完成,剩余18張票
窗口1正在售票
窗口1售票完成,剩余17張票
窗口3正在售票
窗口3售票完成,剩余16張票
窗口2正在售票
窗口2售票完成,剩余15張票
窗口2正在售票
窗口2售票完成,剩余14張票
窗口2正在售票
窗口2售票完成,剩余13張票
窗口2正在售票
窗口2售票完成,剩余12張票
窗口2正在售票
窗口2售票完成,剩余11張票
窗口2正在售票
窗口2售票完成,剩余10張票
窗口2正在售票
窗口2售票完成,剩余9張票
窗口2正在售票
窗口2售票完成,剩余8張票
窗口2正在售票
窗口2售票完成,剩余7張票
窗口2正在售票
窗口2售票完成,剩余6張票
窗口2正在售票
窗口2售票完成,剩余5張票
窗口2正在售票
窗口2售票完成,剩余4張票
窗口2正在售票
窗口2售票完成,剩余3張票
窗口2正在售票
窗口2售票完成,剩余2張票
窗口2正在售票
窗口2售票完成,剩余1張票
窗口2正在售票
窗口2售票完成,剩余0張票

Process finished with exit code 0

不加同步鎖測試結(jié)果:

窗口3正在售票
窗口1正在售票
窗口2正在售票
窗口1售票完成,剩余18張票
窗口1正在售票
窗口2售票完成,剩余19張票
窗口3售票完成,剩余19張票
窗口2正在售票
窗口3正在售票
窗口2售票完成,剩余16張票
窗口2正在售票
窗口1售票完成,剩余15張票
窗口3售票完成,剩余16張票
窗口1正在售票
窗口3正在售票
窗口3售票完成,剩余13張票
窗口1售票完成,剩余14張票
窗口1正在售票
窗口2售票完成,剩余12張票
窗口2正在售票
窗口3正在售票
窗口2售票完成,剩余10張票
窗口1售票完成,剩余11張票
窗口1正在售票
窗口3售票完成,剩余11張票
窗口2正在售票
窗口3正在售票
窗口2售票完成,剩余8張票
窗口1售票完成,剩余8張票
窗口3售票完成,剩余8張票
窗口1正在售票
窗口2正在售票
窗口3正在售票
窗口2售票完成,剩余5張票
窗口1售票完成,剩余5張票
窗口3售票完成,剩余7張票
窗口1正在售票
窗口2正在售票
窗口3正在售票
窗口2售票完成,剩余2張票
窗口1售票完成,剩余3張票
窗口3售票完成,剩余2張票
窗口1正在售票
窗口2正在售票
窗口3正在售票
窗口3售票完成,剩余1張票
窗口2售票完成,剩余0張票
窗口1售票完成,剩余1張票

Process finished with exit code 0

synchronized與Lock鎖的區(qū)別:

Java synchronized與Lock

到此這篇關(guān)于java多線程實現(xiàn)同步鎖賣票實戰(zhàn)項目的文章就介紹到這了,更多相關(guān)java 同步鎖賣票內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • idea每次新打開的項目窗口maven都要重新設置問題

    idea每次新打開的項目窗口maven都要重新設置問題

    這篇文章主要介紹了idea每次新打開的項目窗口maven都要重新設置問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • springboot如何關(guān)掉tomcat容器

    springboot如何關(guān)掉tomcat容器

    這篇文章主要介紹了springboot如何關(guān)掉tomcat容器,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot項目整合mybatis的方法步驟與實例

    SpringBoot項目整合mybatis的方法步驟與實例

    今天小編就為大家分享一篇關(guān)于SpringBoot項目整合mybatis的方法步驟與實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 解決Java?結(jié)構(gòu)化數(shù)據(jù)處理開源庫?SPL的問題

    解決Java?結(jié)構(gòu)化數(shù)據(jù)處理開源庫?SPL的問題

    這篇文章主要介紹了Java?結(jié)構(gòu)化數(shù)據(jù)處理開源庫?SPL的問題,Scala提供了較豐富的結(jié)構(gòu)化數(shù)據(jù)計算函數(shù),但編譯型語言的特點,也使它不能成為理想的結(jié)構(gòu)化數(shù)據(jù)計算類庫,對此內(nèi)容感興趣的朋友一起看看吧
    2022-03-03
  • java排序算法之_選擇排序(實例講解)

    java排序算法之_選擇排序(實例講解)

    下面小編就為大家?guī)硪黄猨ava排序算法之_選擇排序(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • IDEA導入jar包的完整實現(xiàn)步驟

    IDEA導入jar包的完整實現(xiàn)步驟

    由于導入jar包項目存在很多不確定的問題,導致每次都需要調(diào)試、配置好多遍,對此特意記錄下來,這篇文章主要給大家介紹了關(guān)于IDEA導入jar包的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Java實現(xiàn)萬年歷效果

    Java實現(xiàn)萬年歷效果

    這篇文章主要為大家詳細介紹了Java實現(xiàn)萬年歷效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • springboot排除某些自動配置的操作方法

    springboot排除某些自動配置的操作方法

    Spring Boot 提供的自動配置非常強大,某些情況下,自動配置的功能可能不符合我們的需求,需要我們自定義配置,這個時候就需要排除/禁用Spring Boot 某些類的自動化配置了,本文給大家介紹springboot排除某些自動配置的方法,感興趣的朋友一起看看吧
    2023-08-08
  • RestTemplate調(diào)用POST和GET請求示例詳解

    RestTemplate調(diào)用POST和GET請求示例詳解

    這篇文章主要為大家介紹了RestTemplate調(diào)用POST和GET請求示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • springboot 實現(xiàn)記錄業(yè)務日志和異常業(yè)務日志的操作

    springboot 實現(xiàn)記錄業(yè)務日志和異常業(yè)務日志的操作

    這篇文章主要介紹了springboot 實現(xiàn)記錄業(yè)務日志和異常業(yè)務日志的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論