快乐影院

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;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值