class  MyThread  extends Thread
{   
  public void run()
  {   
   for(int i=0;i<1000;i++)
    {   
     System.out.println("Print   "+i);   
      }   
  }   
}
   
class MyClass
{   
  public static void main(String   []args)   
  {   
   new   MyThread().start();   
   System.exit(0);   //这条语句是什么时候执行的??
  System.out.println("Main() exits");  //为什么每次执行结果会不一样 
  }   
}  

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【Java_gannbare】截止到2008-07-29 15:11:03的历史汇总数据(不包括此帖):
    发帖的总数量:7                        发帖的总分数:190                      每贴平均分数:27                       
    回帖的总数量:9                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:6                        结贴的总分数:170                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:85.71 %               结分的百分比:89.47 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   

    多线程的程序执行结果是不一定的,Main线程和你自己起的线程同时抢占CPU,exit什么时候执行也是不一定的class MyThread extends Thread {
    public void run() {
    for (int i = 0; i < 1000; i++) {
    System.out.println("Print   " + i);
    }
    }
    }class MyClass {
    public static void main(String[] args) throws Exception{
    MyThread mt = new MyThread();
    mt.start();
    mt.join();
    System.exit(0); // 这条语句是什么时候执行的??
    System.out.println("Main() exits"); // 为什么每次执行结果会不一样
    }
    }
    这样会等待你自己的线程执行完
      

  3.   

    MyThread().start();以后,MyThread就跟Main抢资源,结果是不一定的。
    如果MyThread还没开始就被Main抢了,就连一条Print都没有,什么时候被抢过去就什么结束。
    "Main() exits"肯定是打不出来。
      

  4.   

    本程序中一共有两个线程Thread-0和main,它们的执行顺序是不确定的.有可能交错执行,也可能一个执行完了另一个再执行.
    如果在Thread-0执行过程中切换到main,程序直接退出,打印结果不完整.
    如果一开始就是main优先,可能没有输出.
    如果Thread-0执行完毕,则输出全部结果.
      

  5.   

    顶下。三天之后结贴。
    支持多线程机机制在JAVA中的就应用,但不是很明白
      

  6.   

    run中的代码与main中的代码交替执行,
    我这儿有多线程视频
      

  7.   

    在run()中加一条语句:
    System.out.println(Thread.currentThread().getName());你就可以看到每一次打印语句是属于哪个线程的。
      

  8.   

    在eclipse中用debug可以调试代码,看到代码执行的顺序吧
      

  9.   

     class  MyThread  extends Thread
    {   
      public void run()
      {   
          for(int i=0;i<1000;i++)
           {   
             System.out.println("Print   "+i);   
          }   
      }   
    }
       
    class MyClass
    {   
      public static void main(String   []args)   //启动一个main主线程。
      {   
          new   MyThread().start();   //你可以定义多个子线程,看他们的调用情况。
          System.exit(0);       //线程启动以后的调后,就是由JVM随机决定的
         System.out.println("Main() exits");    }   
    }