Java自学 day23_多线程18(继承Thread类的方式卖电影票案例)笔记
多线程程序练习
- 需求:某电影院目前正在上映贺岁大片,共有100张票,而它有3个售票窗口售票,请设计-一个程序模拟该电影院售票。
- 两种方式实现
继承Thread类
实现Runnable接口
含主方法的类SellTicketDemo:
1 public class SellTicketDemo { 2 3 public static void main(String[] args) { 4 //创建线程对象 5 SellTicket st1=new SellTicket(); 6 SellTicket st2=new SellTicket(); 7 SellTicket st3=new SellTicket(); 8 9 //给线程对象起名字 10 st1.setName("窗口1"); 11 st2.setName("窗口2"); 12 st3.setName("窗口3"); 13 14 //启动线程 15 st1.start(); 16 st2.start(); 17 st3.start(); 18 19 } 20 21 }
自定义类SellTicket 继承Thread类
1 public class SellTicket extends Thread { 2 // 为了让多个线程对象共享这个100张票,其实应该用静态修饰 3 private static int ticket = 100; 4 5 @Override 6 public void run() { 7 // int ticket=100;这样写每个线程进来都会走到这里,每个线程对象相当于买的是自己的那100张票,不合理,所以应该定义到外面 8 // while(true)是为了模拟一直有票 9 while (true) { 10 if (ticket > 0) { 11 System.out.println(getName() + "正在出售第" + (ticket--) + "张票"); 12 } 13 } 14 15 } 16 }

浙公网安备 33010602011771号