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

Java模擬多線程實(shí)現(xiàn)搶票代碼實(shí)例

 更新時(shí)間:2020年01月06日 11:51:53   作者:Mr__張  
這篇文章主要介紹了Java模擬多線程實(shí)現(xiàn)搶票,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Java模擬多線程實(shí)現(xiàn)搶票,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

實(shí)現(xiàn)100張票搶購(gòu)的demo

這里需要一個(gè)變量,來保存100張

局部變量:

  •   定義在方法內(nèi),方法運(yùn)行存在,方法運(yùn)行結(jié)束銷毀,無法保存一個(gè)持久化數(shù)據(jù)!??!

成員變量:

  •   保存在類對(duì)象內(nèi),創(chuàng)建對(duì)象之后存在,對(duì)象不銷毀成員變量也不會(huì)被內(nèi)存收回。因?yàn)?/li>
  •   在每一個(gè)類對(duì)象中,都存在一個(gè)對(duì)應(yīng)的成員變量,這些成員變量不是同一個(gè)數(shù)據(jù)。不是
  •   共享資源,不合適?。?!

靜態(tài)成員變量:

  •   保存在內(nèi)存的【數(shù)據(jù)區(qū)】,類文件加載時(shí)就存在,并且可以給每一個(gè)類對(duì)象使用,一處修改
  •   處處受影響?。?!作為共享資源非常合適?。?!

問題

1. 銷售順序存在異常

2. 存在某一張票被銷售了多次

使用鎖

代碼如下

class SaleThread implements Runnable {

 /**
  * 使用靜態(tài)成員變量作為100張票的保存變量,是一個(gè)共享資源。
  */
 private static int tickets = 100;

 @Override
 public void run() {

  // 完成售票過程
  while (true) {
   /*
   字符串可以作為鎖對(duì)象,因?yàn)殡p引號(hào)包含的字符串不管在代碼中如何運(yùn)行,有且只有一個(gè)
    */
   synchronized ("鎖") {

    try {
     Thread.sleep(500);
    } catch (InterruptedException e) {
     e.printStackTrace();
    }

    if (tickets > 0) {
     System.out.println(Thread.currentThread().getName() + "售出了" + tickets + "張票");
     tickets--;
    } else {
     System.out.println(Thread.currentThread().getName() + "售罄?。。?);
     break;
    }
   }
  }
 }
}

public class Demo {
 public static void main(String[] args) {
  Thread t1 = new Thread(new SaleThread(), "售票人員1");
  Thread t2 = new Thread(new SaleThread(), "售票人員2");
  Thread t3 = new Thread(new SaleThread(), "售票人員3");

  t1.start();
  t2.start();
  t3.start();
 }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何通過源碼了解Java的自動(dòng)裝箱拆箱詳解

    如何通過源碼了解Java的自動(dòng)裝箱拆箱詳解

    裝箱就是把基本類型轉(zhuǎn)換成包裝類,拆箱就是把包裝類轉(zhuǎn)換成基本類型,下面這篇文章主要給大家介紹了關(guān)于如何通過源碼了解Java的自動(dòng)裝箱拆箱的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Java詳解swagger2如何配置使用

    Java詳解swagger2如何配置使用

    編寫和維護(hù)接口文檔是每個(gè)程序員的職責(zé),根據(jù)Swagger2可以快速幫助我們編寫最新的API接口文檔,再也不用擔(dān)心開會(huì)前仍忙于整理各種資料了,間接提升了團(tuán)隊(duì)開發(fā)的溝通效率
    2022-06-06
  • SpringBoot實(shí)現(xiàn)短信驗(yàn)證碼校驗(yàn)方法思路詳解

    SpringBoot實(shí)現(xiàn)短信驗(yàn)證碼校驗(yàn)方法思路詳解

    最近做項(xiàng)目遇到這樣的需求,前端是基于BootStrap,html代碼中有BootStrap樣式實(shí)現(xiàn)的,具體后臺(tái)實(shí)現(xiàn)代碼大家通過本文一起學(xué)習(xí)吧
    2017-08-08
  • SpringBoot+MybatisPlus+Mysql+JSP實(shí)戰(zhàn)

    SpringBoot+MybatisPlus+Mysql+JSP實(shí)戰(zhàn)

    這篇文章主要介紹了SpringBoot+MybatisPlus+Mysql+JSP實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java轉(zhuǎn)義字符詳細(xì)介紹

    Java轉(zhuǎn)義字符詳細(xì)介紹

    這篇文章主要介紹了Java轉(zhuǎn)義字符的相關(guān)資料,包括換行符、回車符、換頁(yè)符、退格符、空字符、空格、制表符、單引號(hào)、雙引號(hào)、反斜杠以及八進(jìn)制和十六進(jìn)制字符,通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • mybatis-plus查詢?cè)创a詳解

    mybatis-plus查詢?cè)创a詳解

    這篇文章主要介紹了mybatis-plus查詢?cè)创a解讀,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java使用itextpdf實(shí)現(xiàn)Excel轉(zhuǎn)PDF

    Java使用itextpdf實(shí)現(xiàn)Excel轉(zhuǎn)PDF

    這篇文章主要為大家詳細(xì)介紹了Java如何使用itextpdf實(shí)現(xiàn)Excel轉(zhuǎn)PDF,并且支持xlsx和xls兩種格,文中的示例代碼講解詳細(xì),希望對(duì)大家有所幫助
    2024-01-01
  • Spring中@Service注解的作用與@Controller和@RestController之間區(qū)別

    Spring中@Service注解的作用與@Controller和@RestController之間區(qū)別

    這篇文章主要介紹了Spring中@Service注解的作用與@Controller和@RestController之間的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03
  • 實(shí)例詳解Java庫(kù)中的LocalDate類

    實(shí)例詳解Java庫(kù)中的LocalDate類

    在做報(bào)表統(tǒng)計(jì)時(shí),需要對(duì)指定時(shí)間內(nèi)的數(shù)據(jù)做統(tǒng)計(jì),則需要使用到時(shí)間日期API,下面這篇文章主要給大家介紹了關(guān)于Java庫(kù)中LocalDate類的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • 關(guān)于SpringBoot攔截器中Bean無法注入的問題

    關(guān)于SpringBoot攔截器中Bean無法注入的問題

    這兩天遇到SpringBoot攔截器中Bean無法注入問題。下面介紹關(guān)于SpringBoot攔截器中Bean無法注入的問題,感興趣的朋友一起看看吧
    2021-10-10

最新評(píng)論

蕲春县| 亚东县| 无极县| 古交市| 原阳县| 嘉鱼县| 紫金县| 黄陵县| 华池县| 东乡族自治县| 会同县| 元谋县| 宜宾市| 蒙山县| 工布江达县| 洛隆县| 偃师市| 寿光市| 盐山县| 靖远县| 中方县| 林西县| 武功县| 翁源县| 兴隆县| 炎陵县| 来凤县| 敦煌市| 蕉岭县| 宁河县| 九江县| 溧阳市| 南漳县| 灌云县| 桃江县| 安多县| 清苑县| 五常市| 广丰县| 武隆县| 陕西省|