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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 巩建 于 2013-6-18 19:01 编辑
  1. /*
  2. 卖票的问题。看到毕老师的视频的这部分,突发奇想,于是改了一下程序,想实现修改各个线程名称的功能。
  3. 但本程序没有编译运行错误,为什么运行结果中看不到修改过后的各个线程的名称?
  4. 如果是程序编写有点问题或不合理那该怎么修改才好?
  5. */
  6. class Ticket extends Thread implements Runnable
  7. {
  8.            private static int ticket = 100;
  9.            private String name;
  10.            Ticket(String name)
  11.           {
  12.                    super(name);
  13.           }
  14.           public void run()
  15.          {
  16.                   while(ticket>0)
  17.                  {
  18.                             System.out.println(Thread.currentThread().getName()+"--sale--"+ ticket--);
  19.                  }
  20.          }
  21. }

  22. class ThreadTest1
  23. {
  24.            public static void main(String[] args)
  25.           {
  26.                    Ticket t_1 = new Ticket("one");
  27.                    Ticket t_2 = new Ticket("two");
  28.                    Ticket t_3 = new Ticket("three");
  29.                    Ticket t_4 = new Ticket("four");
  30.                    new Thread(t_1).start();
  31.                    new Thread(t_2).start();
  32.                    new Thread(t_3).start();
  33.                    new Thread(t_4).start();
  34.           }
  35. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
夜默 + 1

查看全部评分

6 个回复

倒序浏览
王磊 发表于 2013-6-18 04:06
补充:刚刚说的方法是使用Thread方式创建线程
如果用Runnable方式,可修改为总之不要两个方法一起用就好 ...

其实最初的目的是为了只想通过Runnable接口,在程序中实现对各个线程的名称的更改,发现用currentThread().getName()实现不了,发现currentThread().getName()其实是Thread中的方法,故又继承了它,发现还是实现不了。如果在定义Ticket类的时候,不去继承Thread,只使用Runnable接口,该怎么实现对各个纯种的名称的更改?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马