start()用来启动线程,真正实现了多线程,这时无需等待run()方法体代码执行完毕而直接继续执行下面的代码:通过调用Thread类的start()方法此线程处于就需状态并没有运行,然后通过此Thread类调用方法run()来完成其运行操作的,这里方法run()称为线程体,她包含了要执行这个线程的内容,run方法运行结束,此线程终止。而cpu再运行其他线程。

run()当做普通的方法调用,程序还是要顺序执行,还是要等待run方法体执行完毕后才执行下面的代码,而如果直接用run方法,这只是调用一个方法而已,程序中依然只有主程序这一个线程,其程序执行路径还是一条,这样就没有达到写线程的目的。

 

 

举例说明:

 

public class TestThread(){

   public static void main(String []args){

        Runner1  r = new Runner1();

        //r.run();//这是方法调用,而不是开启一个线程
        Thread t = new Thread());//调用了Thread(Runnable target)方法。且父类对象变量指向子类对象。
        t.start();

 

 

 

 

      

}

      

}

class  Runner1 implements Runnable{//实现了这个接口,jdk就知道这个类是一个线程

   public void run(){

     for(int j=0;j<100;j++){

          System.out.println("进入Runner1运行状态");

          System.out.println(j);

}

}

}

 


        for(int i=0;i<100;i++){

           System.out.println("进入了mianThread的运行方法");

            System.out.println(i);

 

}

posted on 2010-08-30 11:02  加乐sky  阅读(811)  评论(0)    收藏  举报