中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

題目:買火車(che)票

窗口搶票簡單實現

package com.gao.Project.Pro7;

public class BuyTicketThread extends Thread{
    //有參構造器
    public BuyTicketThread(String name){
        super(name);//調用父類構造器傳名字
    }
    //一共10張票
    static int ticketNum = 10;  //多個對象共享10張票
    //每個窗口都是一個線程對象:每個對象執行的代碼放入run方法中
    @Override
    public void run() {
        //每個窗口后面都有100個人在搶票
       for (int i = 1; i<=100; i++) {
           if(ticketNum > 0){//對票數進行判斷
               System.out.println("我在"+this.getName()+"買到了北京到哈爾濱的第"+ ticketNum-- +"張車票");
           }
       }
    }
}

package com.gao.Project.Pro7;

public class Test {
    public static void main(String[] args) {
        //多個窗口搶票:三個窗口--->三個線程對象
        BuyTicketThread t1 = new BuyTicketThread("窗口1");
        t1.start();
        BuyTicketThread t2 = new BuyTicketThread("窗口2");
        t2.start();
        BuyTicketThread t3 = new BuyTicketThread("窗口3");
        t3.start();
    }
}

多次(ci)運行會出(chu)現錯誤(wu)(wu)錯誤(wu)(wu):例如同一張票(piao)重復被購買(mai),出(chu)現0票(piao)負數票(piao)等(deng)問題

窗口搶票加強版

package com.gao.Project.Pro8;

public class BuyTicketThread implements Runnable {//實現Runnable接口
    int ticketNum = 10;
    @Override
    public void run() {
        for (int i = 1; i <100 ; i++) {
            if (ticketNum>0){
                System.out.println("我在窗口"+Thread.currentThread().getName()+ "買到了北京到哈爾濱的第"+  ticketNum--  +"張車票");
            }

        }
    }
}

package com.gao.Project.Pro8;

import java.util.concurrent.TransferQueue;

public class Test {
    public static void main(String[] args) {
        //定義一個線程對象
        BuyTicketThread bt = new BuyTicketThread();
        //窗口1買票
        Thread bt1 = new Thread(bt,"窗口1");
        bt1.start();
        //窗口2買票
        Thread bt2 = new Thread(bt,"窗口2");
        bt2.start();
        //窗口3買票
        Thread bt3 = new Thread(bt,"窗口3");
        bt3.start();
    }
}

posted @ 2022-10-08 14:03  進步+吃飯  閱讀(30)  評論(0)    收藏  舉報