Threadのrun()とstart()の方法

1521 ワード

Thread類のrun()とstart()方法の違いをはっきり見てください。run()方法:他のところでrunメソッドを呼び出すと、普通の方法を呼び出すことです。他の呼び出し方法と同じです。たとえば、person.eat()また、直接的にrunを呼び出すと、何度も繰り返して呼び出すことができます。start()メソッド:スレッドを起動し、このRunnableオブジェクトのrunを呼び出す方法は、スレッドを複数回起動することができません。
 
前の例は注釈がはっきりしています。
 
public class ThreadTest {
    
    /**
     *       run()  start()          
     * 
     * @param args
     * @throws Exception
     */
    public static void main(String[] args){
        Thread thread=new ThreadDemo();
        //   
        //  : run()             ,main         ,        
        //thread.run();
        
        //   
        //  : start()           , main       ,  start()             ,
        //         ,    thread     .     ,            (     )
        //thread.start();
        
        //   
        //1、        100  ?     thread      daemon(  )  ,              ,      ,            
        //2、 java               ,java      。             ,
        //           ,         。                         。                 
        //thread.setDaemon(true);
        //thread.start();
        
        //   
        //       System.exit(0)  kill ,         
        thread.start();
        System.out.println("main thread is over");
        System.exit(1);
    }
    
    public static class ThreadDemo extends Thread{
        @Override
        public void run() {
            for (int i = 0; i < 100; i++) {
                System.out.println("This is a Thread test"+i);
            }
        }
    }
}