java 多线程-快乐订座电影院

java 多线程-快乐订座电影院
public class test{

public static void main(String[]args)
{
//可用位置
List available =new ArrayList();
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 available; //可用位置
String name;
public Cinema(List available,String name)
{
this.available=available;
this.name=name;
}

public boolean bookticks(List seats)
{
System.out.println(“可用位置:”+available);
List copy=new ArrayList();
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; //哪个影院
Listseats; //多少个位置
public customer(Cinema cinema,List 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()+"位置不够");
}
}

}

}
深圳网站建设www.sz886.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值