> Java > java지도 시간 > 본문

Java에서 `Thread.start()`와 `Thread.run()`의 주요 차이점은 무엇입니까?

DDD
풀어 주다: 2024-11-15 11:41:02
원래의
901명이 탐색했습니다.

What's the Key Difference Between `Thread.start()` and `Thread.run()` in Java?

Thread.start() 및 Thread.run()의 미묘한 차이 이해

Thread.start()와 Thread의 차이점. Java의 run()은 멀티스레딩에서 중요한 역할을 합니다. 두 메서드 모두 run() 메서드 실행과 관련되어 있지만 근본적으로 다른 방식으로 실행됩니다.

Thread.run(): 직접 실행

run()을 직접 호출 현재 스레드에서 run() 메서드를 실행합니다. 이는 해당 작업에 대해 별도의 스레드가 생성되지 않음을 의미합니다. 대신 작업은 호출 스레드 실행의 일부로 실행됩니다.

예:

public class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("Running directly...");
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread();
        thread.run();
    }
}
로그인 후 복사

출력:

Running directly...
로그인 후 복사

여기에서는 예를 들어, run()을 호출하면 별도의 스레드가 없기 때문에 메인 스레드에서 "직접 실행 중..."이 직접 인쇄됩니다. 생성되었습니다.

Thread.start(): 새 스레드 생성

반대로 start()를 호출하면 새 스레드가 생성되고 해당 새 스레드 내에서 run() 메서드가 실행됩니다. 실. 이를 통해 여러 작업을 동시에 실행할 수 있습니다.

예:

public class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("Running in new thread...");
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread();
        thread.start();
    }
}
로그인 후 복사

출력:

Running in new thread...
로그인 후 복사

start()를 호출하면 그렇지 않습니다. 즉시 run() 메소드를 실행하십시오. 대신 새로운 스레드가 생성되고 Java Virtual Machine이 이를 예약하고 실행할 시기를 결정합니다.

실질적인 차이점

Thread.start()와 Thread.start()의 차이점 Thread.run()은 완료하는 데 상당한 시간이 걸리는 작업을 고려할 때 분명해집니다. run()을 사용하여 작업을 직접 실행하면 작업이 완료될 때까지 메인 스레드가 차단되어 그 동안 다른 작업이 실행되지 않습니다. 이로 인해 성능과 응답성이 저하될 수 있습니다.

start()를 사용하면 작업이 별도의 스레드에서 실행되므로 기본 스레드가 다른 작업을 동시에 계속 실행할 수 있습니다. 이를 통해 전반적인 성능이 향상되고 응답성이 유지됩니다.

위 내용은 Java에서 `Thread.start()`와 `Thread.run()`의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿