A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
* 这是卖票类,继承Thread类
*
*/
class TicketDemo extends Thread
{
private static TicketDemo t = new TicketDemo();
  
private int tick = 100;

private TicketDemo()
{
  super();
}

public static TicketDemo getTicketDemo()
{
  return t;
}

public void run()
{
  while(true)
  {
   if(tick>0)
    System.out.println(Thread.currentThread().getName()+"..."+tick--);
  }
}
}


public class TicketExe {
/**
  * 需求:两个买票同时售票,可以定义一个单例设计模式
  * 这种创建方式特别不靠谱,因为相当于一个类对象跑了2次
  *
  *
  * 也可以建立两个买票对象,公用数据设计成静态
  *
  */
public static void main(String[] args)
{
  
  TicketDemo t1 = TicketDemo.getTicketDemo();
  TicketDemo t2 = TicketDemo.getTicketDemo();
  t1.start();
  t2.start();
//  TicketRunnable t = new TicketRunnable();//如何区分这两个同步线程
//  
//  Thread t1 = new Thread(t);
//  Thread t2 = new Thread(t);
  
//  t1.start();
//  t.setFlag(false);
//  t2.start();
  
}
}

代码运行结果,如下:
Exception in thread "main" Thread-0...100java.lang.IllegalThreadStateException
at java.lang.Thread.start(Unknown Source)
at Java_13.TicketExe.main(TicketExe.java:20)Thread-0...99
Thread-0...98
Thread-0...97
Thread-0...96
Thread-0...95
Thread-0...94
Thread-0...93
Thread-0...92
Thread-0...91
Thread-0...90
Thread-0...89
Thread-0...88
Thread-0...87
到结束

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
谢谢,分享。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马