溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java 多線程-快樂訂座電影院

發(fā)布時間:2020-07-20 22:40:03 來源:網(wǎng)絡(luò) 閱讀:148 作者:wx5d21d5e6e5ab1 欄目:編程語言
public class test{

public static void main(String[]args)
{
    //可用位置
    List<Integer> available =new ArrayList<Integer>();
    available.add(1);
    available.add(2);
    available.add(3);
    available.add(4);
    available.add(5);
    available.add(6);
    available.add(7);

    //顧客位置
    List<Integer> seats1=new ArrayList<Integer>();
    seats1.add(1);
    seats1.add(2);

    List<Integer> seats2=new ArrayList<Integer>();
    seats2.add(4);
    seats2.add(5);
    seats2.add(6);

    Cinema c=new Cinema(available,"happy");
    new Thread(new customer(c,seats1),"me").start();
    new Thread(new customer(c,seats2),"she").start();
}
}

class Cinema{
List<Integer> available; //可用位置
String name;
public Cinema(List<Integer> available,String name)
{
    this.available=available;
    this.name=name;
}

public boolean bookticks(List<Integer> seats)
{
    System.out.println("可用位置:"+available);
    List<Integer> copy=new ArrayList<Integer>();
    copy.addAll(available);

    //去掉兩個容器相同的元素
    copy.removeAll(seats);

    //判斷是否選位置成功
    if(available.size()-copy.size()!=seats.size())
    {
        return false;
    }
    else
    {
        available=copy;
    }

    return true;
}

}

class customer implements Runnable{
Cinema cinema; //哪個影院
List<Integer>seats;  //多少個位置
public customer(Cinema cinema,List<Integer> seats)
{
    this.cinema=cinema;
    this.seats=seats;
}

public void run()
{
    synchronized(cinema) {  //鎖影院
    boolean flag=cinema.bookticks(seats);

    if(flag)
    {
        System.out.println("出票成功"+Thread.currentThread().getName()+"位置:"+seats);

    }else
    {
        System.out.println("出票失敗"+Thread.currentThread().getName()+"位置不夠");
    }
    }

}

}
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI