黑马程序员技术交流社区

标题: 线程问题 [打印本页]

作者: 张继鲁    时间: 2014-3-3 10:20
标题: 线程问题
怎么没有运行的结果:
  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. }
复制代码



作者: kira    时间: 2014-3-3 10:35
  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.     }
复制代码

你的类又没有作用到线程上 怎么会有效果
作者: optimisticpig    时间: 2014-3-3 10:53
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类应该这么写吧
作者: chaos    时间: 2014-3-3 10:55
main中没有创建Ticket类的对象所以没运行Ticket
把new Thread()改成new Thread(new Ticket())
作者: 透过生活    时间: 2014-3-3 11:19

对于线程有两种方式,继承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();
  
       }





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2