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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小洋人最happy 中级黑马   /  2012-12-8 10:32  /  1224 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class ThreadDemo1
  {
  public static void main(String[] args)
  {
   TestThread tt = new TestThread();
   new Thread(tt).start();//为什么还要new Thread(tt) 呢  直接 tt.start()不行吗?  下面不是已经实现了Runnable接口了吗
   new Thread(tt).start();
   new Thread(tt).start();
   new Thread(tt).start();
  }
  }
  class TestThread implements Runnable
  {
  int tickets = 100;
  public void run()
  {
   while (true)
   {
    if(tickets>0)
     sop(Thread.currentThread().getName()+"正在售的票是“+tickets--)
   }
  }
  }

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
tt只是一个实现了Runnable接口的子类对象,直接用tt.start方法会调用类中的start方法。
必须得创建一个线程对象new Thread(tt),将tt传给线程的构造函数来启动线程。
如果tt是一个继承了Thread类的对象,那么这个tt对象就是一个线程,就可以使用tt.start();
因为实现Runnable接口能够避免单继承的局限性,一般用Runnable.

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马