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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张继鲁 中级黑马   /  2014-3-3 10:20  /  668 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

怎么没有运行的结果:
  1. package cn.itheima.test;

  2. public class TickeDemo {
  3.         public static void main(String[] args) {
  4.                 Thread t1 = new Thread();
  5.                 Thread t2 = new Thread();
  6.                 Thread t3 = new Thread();
  7.                 Thread t4 = new Thread();
  8.                 t1.start();
  9.                 t2.start();
  10.                 t3.start();
  11.                 t4.start();       
  12.         }
  13.        
  14.         class Ticket extends Thread{
  15.                 private int tick=100;
  16.                 public void run(){
  17.                         while(true){
  18.                                 if(tick>0)
  19.                                         System.out.println(Thread.currentThread().getName()+"sale:"+tick--);
  20.                         }
  21.                 }
  22.         }

  23. }
复制代码


评分

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

查看全部评分

4 个回复

倒序浏览
  1. public class CCC {
  2.         public static void main(String[] args) {
  3.                 Ticket t = new Ticket();
  4.                new Thread(t).start();
  5.                new Thread(t).start();
  6.                new Thread(t).start();
  7.                new Thread(t).start();
  8.         }
  9.         
  10.       
  11.         }
  12. class Ticket implements  Runnable{
  13.     private int tick=100;
  14.     public void run(){
  15.          for(int x=0;x<200;x++){
  16.                     if(tick>0)
  17.                             System.out.println(Thread.currentThread().getName()+"sale:"+tick--);
  18.                }
  19.             }
  20.     }
复制代码

你的类又没有作用到线程上 怎么会有效果

评分

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

查看全部评分

回复 使用道具 举报
class Ticket extends Thread
{
        private int tick=100;
        public void run()
        {
                 while(true)
                {
                        if(tick>0)
                        {
                                  System.out.println(Thread.currentThread().getName()+"sale:"+tick--);
                        }
                }
        }
}
public class TicketDemo
{
        public static void main(String[] args)
        {
                Ticket t1 = new Ticket();
                Ticket t2 = new Ticket();
                Ticket t3 = new Ticket();
                Ticket t4 = new Ticket();
                                
                t1.start();
                t2.start();
                t3.start();
                t4.start();        
        }

}
继承Thread类应该这么写吧

评分

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

查看全部评分

回复 使用道具 举报
main中没有创建Ticket类的对象所以没运行Ticket
把new Thread()改成new Thread(new Ticket())

评分

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

查看全部评分

回复 使用道具 举报

对于线程有两种方式,继承Thread 和实现Runnable接口,JDK1.5后可以通过Executors这个工具类添加一个线程
你这个问题就是虽然开启了线程,类没有作用到线程上
public class TickeDemo {

      public static void main(String[] args) {
     Ticket t = new Ticket();

             new Thread(t).start();

             new Thread(t).start();

             new Thread(t).start();

            new Thread(t).start();
  
       }

评分

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

查看全部评分

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