Thread의 start와run의 차이

1621 단어 thread
최근에 본 제목은 다음과 같습니다.
    public static void main(String args[]) {



        Thread t = new Thread() {

            public void run() {

                pong();

            }

        };

        

        t.run();

        System.out.println("ping");

    }



    static void pong() {

        System.out.println("pong");

    }

질문, 결과는 무엇입니까?
나는 여러 번 운행했는데 결과는 모두 펑핑이었다.나중에 마침내 관건적인 부분을 발견했다. 라인 대상 t는 start () 방법이 아니라run () 방법을 사용했다.나중에 나는 인터럽트 모드 debug를 켰는데,run () 방법을 호출하면 전체 프로그램은 하나의 라인만 있고, start () 방법을 호출하면 프로그램은 하나의 라인이 더 생기는 것을 발견했다.이때야 메인 라인과 cpu를 다투는데 여러 가지 결과가 나타날 수 있지만 아래의 출력 방법이 곧 실행되기 때문에 기본적으로 모두'ping pong'의 출력이다.
 
그래서 런()과 start()의 차이는 다음과 같다.
run () 은 Runnable 인터페이스에서 정의한 방법으로 클라이언트 프로그래머가 이 방법에 자신의 기능 코드를 쓰기 위한 것이다.직접 호출하는 것은 일반적인 클래스에서 자신의 구성원을 호출하는 방법과 아무런 차이가 없다.
start () 는 라인이 실행되기 시작하는 표지입니다. 이 방법이 호출된 후에야 프로그램에 독립된 라인이 하나 더 생겨납니다. 그 다음에run () 방법을 실행합니다.
 
그래서 저는 단독 라인을 쓰려면 Thread를 계승해서 하는 것이 가장 좋다고 생각합니다. 인터페이스를 실현하려면 메인 라인에 new Thread(new Your Runnable Class())를 호출해야 하기 때문에 불편합니다.

좋은 웹페이지 즐겨찾기