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

java實(shí)現(xiàn)多線程賣票功能

 更新時(shí)間:2019年07月15日 08:38:43   作者:jhhuang4836  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)多線程賣票功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

java多線程賣票直接先看個(gè)例子:

public class SelTicketsMainTest {
 public static void main(String[] args) {
 SaleTickets1 saleTickets = new SaleTickets1();
 for(int t=1;t<=3;t++) {
  new Thread(saleTickets).start();
 }
 }
}
 
class SaleTickets1 implements Runnable{
  private int ticketCount = 10;// 總的票數(shù),這個(gè)是共享資源,多個(gè)線程都會(huì)訪問
  
  public void run()
  {
    while (true)// 循環(huán)是指線程不停的去賣票
    {
     synchronized (this)// 當(dāng)操作的是共享數(shù)據(jù)時(shí),
      // 用同步代碼塊進(jìn)行包圍起來,執(zhí)行里面的代碼需要mutex的鎖,但是mutex只有一個(gè)鎖。這樣在執(zhí)行時(shí),只能有一個(gè)線程執(zhí)行同步代碼塊里面的內(nèi)容
  {
     if(ticketCount>0) {
      ticketCount--;
      System.out.println(Thread.currentThread().getName()
          + "正在賣票,還剩" + ticketCount + "張票");
     }
  }
      /**
       * 在同步代碼塊里面睡覺,和不睡效果是一樣 的,作用只是自已不執(zhí)行,也不讓線程執(zhí)行。sleep不釋放鎖,抱著鎖睡覺。其他線程拿不到鎖,也不能執(zhí)行同步代碼。wait()可以釋放鎖
       * 所以把睡覺放到同步代碼塊的外面,這樣賣完一張票就睡一會(huì),讓其他線程再賣,這樣所有的線程都可以賣票
       */
      try
      {
        Thread.sleep(100);
      }
      catch (InterruptedException e)
      {
        e.printStackTrace();
      }
    }
  }
}

這是賣票的經(jīng)典案例,在這做個(gè)記錄。

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

相關(guān)文章

  • hibernate5.2的基本配置方法(詳解)

    hibernate5.2的基本配置方法(詳解)

    下面小編就為大家?guī)硪黄猦ibernate5.2的基本配置方法(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • 在Spring Boot中使用swagger-bootstrap-ui的方法

    在Spring Boot中使用swagger-bootstrap-ui的方法

    這篇文章主要介紹了在Spring Boot中使用swagger-bootstrap-ui的方法,需要的朋友可以參考下
    2018-01-01
  • springboot+mysql+mybatis實(shí)現(xiàn)控制臺(tái)打印sql

    springboot+mysql+mybatis實(shí)現(xiàn)控制臺(tái)打印sql

    在Spring Boot中使用MyBatis與MySQL,并希望在控制臺(tái)打印SQL語句,可以通過配置MyBatis的日志級(jí)別來實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Java 中 getClass() 方法的使用與原理深入分析(對(duì)象類型信息)

    Java 中 getClass() 方法的使用與原理深入分析(對(duì)象類型信息)

    在 Java 編程中,getClass() 是一個(gè)非常重要的方法,它用于獲取對(duì)象的運(yùn)行時(shí)類信息,無論是調(diào)試代碼、反射操作,還是類型檢查,getClass() 都扮演著關(guān)鍵角色,本文將深入探討 getClass() 的使用方法、底層原理以及實(shí)際應(yīng)用場(chǎng)景,感興趣的朋友一起看看吧
    2024-12-12
  • SpringBoot中實(shí)現(xiàn)加載遠(yuǎn)程配置的代碼示例

    SpringBoot中實(shí)現(xiàn)加載遠(yuǎn)程配置的代碼示例

    本文章將通過結(jié)合consul config來講解在springboot中如何加載遠(yuǎn)程配置:通過consul config加載consul server中存儲(chǔ)的配置,需要的朋友可以參考下
    2023-06-06
  • 使用Java實(shí)現(xiàn)將ppt轉(zhuǎn)換為文本

    使用Java實(shí)現(xiàn)將ppt轉(zhuǎn)換為文本

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)將ppt轉(zhuǎn)換為文本,文中的示例代碼簡潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下
    2024-01-01
  • java中Hutool工具類的常見使用場(chǎng)景詳解

    java中Hutool工具類的常見使用場(chǎng)景詳解

    在日常開發(fā)中,我們會(huì)使用很多工具類來提升項(xiàng)目開發(fā)的速度,而國內(nèi)用的比較多的 Hutool 框架,就是其中之一,本文我們就來介紹一下Hutool的具體使用吧
    2023-12-12
  • SpringCloud微服務(wù)之Hystrix組件實(shí)現(xiàn)服務(wù)熔斷的方法

    SpringCloud微服務(wù)之Hystrix組件實(shí)現(xiàn)服務(wù)熔斷的方法

    微服務(wù)架構(gòu)特點(diǎn)就是多服務(wù),多數(shù)據(jù)源,支撐系統(tǒng)應(yīng)用。這樣導(dǎo)致微服務(wù)之間存在依賴關(guān)系。這篇文章主要介紹了SpringCloud微服務(wù)之Hystrix組件實(shí)現(xiàn)服務(wù)熔斷的方法,需要的朋友可以參考下
    2019-08-08
  • Java用遞歸方法解決漢諾塔問題詳解

    Java用遞歸方法解決漢諾塔問題詳解

    漢諾塔問題是一個(gè)經(jīng)典的問題。漢諾塔(Hanoi?Tower),又稱河內(nèi)塔,源于印度一個(gè)古老傳說。本文將用Java遞歸方法求解這一問題,感興趣的可以學(xué)習(xí)一下
    2022-04-04
  • Java中的jinfo命令使用詳解

    Java中的jinfo命令使用詳解

    jinfo是JDK提供的一個(gè)可以實(shí)時(shí)查看Java虛擬機(jī)各種配置參數(shù)和系統(tǒng)屬性的命令行工具,本文給大家介紹下Java中的jinfo命令使用,感興趣的朋友一起看看吧
    2022-03-03

最新評(píng)論

金溪县| 淳化县| 渑池县| 宁南县| 什邡市| 神木县| 敦煌市| 安泽县| 鄂托克旗| 扬中市| 太仆寺旗| 平顺县| 同仁县| 阳山县| 肇州县| 彝良县| 柘荣县| 孝义市| 长宁县| 黎城县| 电白县| 保定市| 诸城市| 台南县| 孙吴县| 石首市| 东方市| 朔州市| 新建县| 汉寿县| 龙川县| 拉孜县| 来安县| 济南市| 水城县| 鄯善县| 象山县| 桐城市| 阳信县| 汉寿县| 宝丰县|