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

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

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

java多線程賣(mài)票直接先看個(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ì)訪問(wèn)
  
  public void run()
  {
    while (true)// 循環(huán)是指線程不停的去賣(mài)票
    {
     synchronized (this)// 當(dāng)操作的是共享數(shù)據(jù)時(shí),
      // 用同步代碼塊進(jìn)行包圍起來(lái),執(zhí)行里面的代碼需要mutex的鎖,但是mutex只有一個(gè)鎖。這樣在執(zhí)行時(shí),只能有一個(gè)線程執(zhí)行同步代碼塊里面的內(nèi)容
  {
     if(ticketCount>0) {
      ticketCount--;
      System.out.println(Thread.currentThread().getName()
          + "正在賣(mài)票,還剩" + ticketCount + "張票");
     }
  }
      /**
       * 在同步代碼塊里面睡覺(jué),和不睡效果是一樣 的,作用只是自已不執(zhí)行,也不讓線程執(zhí)行。sleep不釋放鎖,抱著鎖睡覺(jué)。其他線程拿不到鎖,也不能執(zhí)行同步代碼。wait()可以釋放鎖
       * 所以把睡覺(jué)放到同步代碼塊的外面,這樣賣(mài)完一張票就睡一會(huì),讓其他線程再賣(mài),這樣所有的線程都可以賣(mài)票
       */
      try
      {
        Thread.sleep(100);
      }
      catch (InterruptedException e)
      {
        e.printStackTrace();
      }
    }
  }
}

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

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

相關(guān)文章

  • Java中常見(jiàn)的編碼集問(wèn)題總結(jié)

    Java中常見(jiàn)的編碼集問(wèn)題總結(jié)

    這篇文章主要為大家整理了一些Java中常見(jiàn)的編碼集問(wèn)題,文中的示例代碼講解詳細(xì),對(duì)我們深入理解Java有一定的幫助,感興趣的小伙伴可以了解一下
    2023-02-02
  • SpringBoot中Controller的傳參方式詳細(xì)講解

    SpringBoot中Controller的傳參方式詳細(xì)講解

    這篇文章主要介紹了SpringBoot在Controller層接收參數(shù)的常用方法,Controller接收參數(shù)的常用方式總體可以分為三類(lèi),第一類(lèi)是Get請(qǐng)求通過(guò)拼接url進(jìn)行傳遞,第二類(lèi)是Post請(qǐng)求通過(guò)請(qǐng)求體進(jìn)行傳遞,第三類(lèi)是通過(guò)請(qǐng)求頭部進(jìn)行參數(shù)傳遞,下面我們來(lái)詳細(xì)看看
    2023-01-01
  • 在Spring使用iBatis及配置講解

    在Spring使用iBatis及配置講解

    今天小編就為大家分享一篇關(guān)于在Spring使用iBatis及配置講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • 基于java swing實(shí)現(xiàn)答題系統(tǒng)

    基于java swing實(shí)現(xiàn)答題系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于java swing實(shí)現(xiàn)答題系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Java多線程中的互斥鎖解析

    Java多線程中的互斥鎖解析

    這篇文章主要介紹了Java多線程中的互斥鎖解析,Java語(yǔ)言中,引入了對(duì)象互斥鎖的概念,來(lái)保證共享數(shù)據(jù)操作的完整性,每個(gè)對(duì)象都對(duì)應(yīng)于一個(gè)可稱(chēng)為互斥鎖的標(biāo)記,這個(gè)標(biāo)記用來(lái)保證在任一時(shí)刻,只能有一個(gè)線程訪問(wèn)該對(duì)象,需要的朋友可以參考下
    2023-09-09
  • java反射獲取和調(diào)用方法

    java反射獲取和調(diào)用方法

    本篇內(nèi)容主要給大家詳細(xì)講解了java反射獲取方法以及調(diào)用方法,需要的朋友參考學(xué)習(xí)一下吧。
    2017-12-12
  • Spring Boot中如何使用斷路器詳解

    Spring Boot中如何使用斷路器詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot中如何使用斷路器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Java重點(diǎn)之基于比較的七大排序

    Java重點(diǎn)之基于比較的七大排序

    最近幾天在研究排序算法,看了很多博客,發(fā)現(xiàn)網(wǎng)上有的文章中對(duì)排序算法解釋的并不是很透徹,而且有很多代碼都是錯(cuò)誤的,所以我根據(jù)這幾天看的文章,整理了一個(gè)較為完整的排序算法總結(jié),本文中的所有算法均有JAVA實(shí)現(xiàn),經(jīng)本人調(diào)試無(wú)誤后才發(fā)出,如有錯(cuò)誤,請(qǐng)各位前輩指出
    2021-10-10
  • Spring?Boot中的max-http-header-size配置方式

    Spring?Boot中的max-http-header-size配置方式

    這篇文章主要介紹了Spring?Boot中的max-http-header-size配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Java 線程相關(guān)總結(jié)

    Java 線程相關(guān)總結(jié)

    這篇文章主要介紹了Java 線程的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-02-02

最新評(píng)論