package com.sxt.syn;
import java.util.ArrayList;
import java.util.List;
public class HappyCinema {
public static void main(String[] args) {
List<Integer> available=new ArrayList<>();
available.add(1);
available.add(2);
available.add(3);
available.add(4);
available.add(5);
List<Integer> seat1=new ArrayList<>();
seat1.add(1);
seat1.add(2);
List<Integer> seat2=new ArrayList<>();
seat2.add(6);
Cinema c=new Cinema("sxtcinema",available);
new Thread(new customs(c,seat1),"老高").start();
new Thread(new customs(c,seat2),"老裴").start();
}
}
class customs implements Runnable{
Cinema cinema;
List<Integer> seats;
public customs(Cinema cinema, List<Integer> seats) {
this.cinema =cinema;
this.seats = seats;
}
@Override
public void run() {
synchronized (cinema){
boolean flag=cinema.bookTickets(seats);
if(flag) System.out.println("订票成功-->"+Thread.currentThread().getName()+"-->"+seats);
else System.out.println("订票失败-->"+Thread.currentThread().getName());
}
}
}
//影院
class Cinema{
String name;//影院名字
List<Integer> available;//可用的位置
public Cinema(String name, List<Integer> available) {
this.name = name;
this.available = available;
}
public boolean bookTickets(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;
available=copy;
return true;
}
}
快乐影院
最新推荐文章于 2021-07-29 15:47:35 发布