2016-07-28 4 views
0

간단한 스레드 테스트 코드 스 니펫,이 의사 코드는 new Thread(new Runnable(){...implement run method....}){...override run method...}.start();과 같습니다. 내 문제는 왜이 코드 출력이 'thread : Thread ..'가 아닌 'runnable : Thread ..'인가? 여기에 전체 코드가 있습니다. 감사합니다! 기본적으로왜이 코드 출력은 'thread : Thread ..'가 아닌 'runnable : Thread ..'입니까?

public class ThreadTest { 


public static void main(String[] args) { 
    new Thread(new Runnable(){//1 annonymous class implement Runnable interface 
     @Override 
     public void run() { 
      try { 
       Thread.sleep(1000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
      System.out.println("runnable:" + Thread.currentThread().getName()); 
     } 
    }){ 
     public void run() {//2 annonymous class extends Thread class 
      try { 
       Thread.sleep(1000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
      System.out.println("thread:" + Thread.currentThread().getName()); 
     }; 
    }.start(); 
} 

}

답변

1

Threadrun 방법은이 Runnable 생성자에 제공 위임합니다.

그러나 Thread의 (익명) 하위 클래스에서 run 메서드를 무시하고 다른 작업을 수행했습니다.