要求使用第二种方式实现,方便数据共享:

    步骤:

    1. 定义买票的线程执行目标:

    在成员变量定义为票数100张,卖掉一张,该数字就减去1,一直到0位置
    重写run方法,完成案例

    1. 创建买票的线程且执行该目标的对象
    2. 使用该买票子线程执行对象创建多个线程任务
    3. 开启多个线程 ```java package Test21_Demo.Demo12;/*

      @create 2020—12—14—16:29 */

    /**

    • 这是一个任务类
    • 使用第二种方式 - 实现Runnable接口 */ public class Ticket implements Runnable{ //定义车票 private int number = 100;

      //卖票逻辑 @Override public void run() {

      1. //模拟车站不停的买票
      2. while (true) {
      3. //有票就卖
      4. if (number > 0) {
      5. System.out.println(Thread.currentThread().getName() + "正在销售第" + (number--) + "票");
      6. } else {
      7. //没有票了
      8. break;
      9. }
      10. }

      } }

    1. ```java
    2. package Test21_Demo.Demo12;/*
    3. @create 2020--12--14--16:25
    4. */
    5. public class TicketDemo {
    6. //多线程的设计
    7. public static void main(String[] args) {
    8. //创建车票的线程执行目标对象
    9. Ticket ticket = new Ticket();
    10. //使用该卖票的线程执行目标的对象创建多个任务
    11. /*Thread t1 = new Thread(ticket, "Jack.Ma");
    12. Thread t2 = new Thread(ticket, "HuaTeng.Ma");
    13. Thread t3 = new Thread(ticket, "YanHong.Li");
    14. //启动多个线程
    15. t1.start();
    16. t2.start();
    17. t3.start();*/
    18. new Thread(ticket,"Jack.ma").start();
    19. new Thread(ticket,"HuaTeng.ma").start();
    20. new Thread(ticket,"YanHong.Li").start();
    21. }
    22. }