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

java多線程之鐵路售票系統(tǒng)

 更新時間:2019年07月13日 15:57:46   作者:beyond諺語  
這篇文章主要為大家詳細介紹了java多線程之鐵路售票系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java多線程之鐵路售票系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

問題:鐵路售票,一共100張,通過四個窗口賣完。

要求:分別用

繼承Thread類 和 實現(xiàn)Runnable接口 去實現(xiàn)

①用繼承Thread類去實現(xiàn)

package com.yy.syn;

public class Demo3_Ticket {
/**
 * 鐵路售票,一共100張,通過四個窗口賣完
 * 用繼承Thread類去實現(xiàn)
 * 分析:
 *   四個窗口就相當于四條線程,100張火車票就相當于成員變量
 * 
 * */
  public static void main(String[] args) {
    new Ticket().start();          //創(chuàng)建對象,第一條線程
    new Ticket().start();          //創(chuàng)建對象,第二條線程
    new Ticket().start();          //創(chuàng)建對象,第三條線程
    new Ticket().start();          //創(chuàng)建對象,第四條線程

  }

}

class Ticket extends Thread{          //繼承Thread類
  private static int ticket = 100;      //四條線程公用這100個成員變量
// private static Object obj = new Object();  //如果用引用數(shù)據(jù)類型的成員變量當作鎖對象,必須是靜態(tài)的,這里的obj對象應該設(shè)置為static靜態(tài)類型
  public void run(){             //重寫run()方法
    while(true){
      synchronized (Ticket.class) {    //這里應該變?yōu)閟ynchronized(obj){}
        if(ticket <= 0){
          break;
        }
        System.out.println(getName() + "...這是第" + ticket-- + "號票");

      }
    }
  }
}

②用實現(xiàn)Runnable接口去實現(xiàn)

package com.yy.syn;

import java.security.GeneralSecurityException;

public class Demo4_Ticket {
  /**
   * 鐵路售票,一共100張,通過四個窗口賣完
   * 用實現(xiàn)Runnable接口去實現(xiàn)
   * 分析:
   *   四個窗口就相當于四條線程,100張火車票就相當于成員變量
   * 
   * */
  public static void main(String[] args) {
    MyTicket mt = new MyTicket();    //這里只是創(chuàng)建了一次對象
    new Thread(mt).start();
    new Thread(mt).start();
    new Thread(mt).start();
    new Thread(mt).start();

    /*Thread t1 = new Thread(mt);
    //public void start() 使該線程開始執(zhí)行;Java 虛擬機調(diào)用該線程的 run 方法。多次啟動一個線程是非法的。特別是當線程已經(jīng)結(jié)束執(zhí)行后,不能再重新啟動。 
    t1.start();
    t1.start();
    t1.start();
    t1.start();*/

  }

}
class MyTicket implements Runnable{   //讓MyTicket這個類去實現(xiàn)Runnable這個接口
  private int tickets = 100;       //然后,Myticket類里面定義成員變量,這里的票只有100張

  @Override
  public void run() {
    while(true){
      synchronized (Ticket.class) {  //這里的鎖對象也可以是this,即 synchronized (this),因為在主函數(shù)里面只創(chuàng)建了一次對象,這里的this就相當于主函數(shù)里面的mt
        if(tickets <= 0){
          break;
        }
        try{
          Thread.sleep(10);
        } catch(InterruptedException e){
          e.printStackTrace();
        }
        System.out.println(Thread.currentThread().getName() + "...這是第" +  tickets-- + "號票" );
      }                //不是Thread的子類,不能直接調(diào)用getName,需要Thread.currentThread().getName()
    }
  }

  private String getName() {

    return null;
  }

}

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

相關(guān)文章

  • SpringBoot升級指定jackson版本的問題

    SpringBoot升級指定jackson版本的問題

    這篇文章主要介紹了SpringBoot升級指定jackson版本,本文給大家分享了漏洞通告及修改Springboot中jackson版本的問題,需要的朋友可以參考下
    2022-08-08
  • SpringBoot封裝自己的Starter的實現(xiàn)方法

    SpringBoot封裝自己的Starter的實現(xiàn)方法

    這篇文章主要介紹了SpringBoot封裝自己的Starter的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • java socket接收保證能讀完數(shù)據(jù)的實例

    java socket接收保證能讀完數(shù)據(jù)的實例

    這篇文章主要介紹了java socket接收保證能讀完數(shù)據(jù)的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java引用隊列和虛引用實例分析

    Java引用隊列和虛引用實例分析

    這篇文章主要介紹了Java引用隊列和虛引用,結(jié)合實例形式分析了java引用隊列和虛引用相關(guān)概念、原理與使用方法,需要的朋友可以參考下
    2019-08-08
  • Spring?Cache+Redis緩存數(shù)據(jù)的實現(xiàn)示例

    Spring?Cache+Redis緩存數(shù)據(jù)的實現(xiàn)示例

    本文主要介紹了Spring?Cache+Redis緩存數(shù)據(jù),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Logger.error打印錯誤異常的詳細堆棧信息

    Logger.error打印錯誤異常的詳細堆棧信息

    這篇文章主要介紹了Logger.error打印錯誤異常的詳細堆棧信息,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Spring boot+beetl+i18n國際化處理的方法

    Spring boot+beetl+i18n國際化處理的方法

    這篇文章主要介紹了Spring boot+beetl+i18n國際化處理的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • SpringMVC+Mysql實例詳解(附demo)

    SpringMVC+Mysql實例詳解(附demo)

    本篇文章主要介紹了SpringMVC+Mysql實例詳解(附demo),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。
    2016-12-12
  • 基于Java制作一個好玩的打飛機游戲

    基于Java制作一個好玩的打飛機游戲

    這篇文章主要介紹了基于Java制作的打飛機小游戲,這里整理了詳細的代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java操作excel的三種常見方法實例

    Java操作excel的三種常見方法實例

    這篇文章主要給大家介紹了關(guān)于Java操作excel的三種常見方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04

最新評論

宜川县| 玉田县| 青海省| 沙洋县| 华安县| 阿鲁科尔沁旗| 威信县| 河北区| 南平市| 成武县| 阿图什市| 星子县| 安宁市| 宁晋县| 万源市| 丹凤县| 唐山市| 彰武县| 顺昌县| 林州市| 磐安县| 慈溪市| 邹平县| 东山县| 孝义市| 安宁市| 新余市| 沁源县| 东乌| 湘西| 鹤壁市| 轮台县| 德昌县| 宜城市| 大余县| 泗阳县| 邯郸市| 宜黄县| 金平| 边坝县| 唐河县|