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 }

 


 

posted @ 2020-03-19 16:30  富贵今天富贵了吗  阅读(503)  评论(4)    收藏  举报