Java에서 Thread.start()와 Thread.run() 호출
소개:
In Java의 멀티스레딩은 작업의 동시 실행을 위한 메커니즘을 제공합니다. 멀티스레딩의 주요 구성 요소 중 하나는 Thread 클래스입니다. 스레드를 실행하려면 Thread.start() 또는 Thread.run()을 호출하면 됩니다. 이 문서의 목적은 이 두 가지 방법의 차이점을 명확히 하고 차이점을 보여주는 것입니다.
차이점 이해:
스레드 객체에서 Thread.start()를 호출하면 새로운 실행 스레드. 이는 운영 체제의 스레드 스케줄러에게 새 스레드를 생성하고 실행을 예약하도록 지시합니다. 일단 시작되면 스레드는 독립되어 메인 스레드와 동시에 실행됩니다.
반면 스레드 객체에서 Thread.run()을 호출하면 단순히 현재 스레드에서 스레드의 run() 메서드가 실행됩니다. . 이 경우 스레드는 독립적으로 실행되도록 예약되지 않으며 run() 메서드가 호출된 후 순차적으로 run() 메서드가 실행됩니다.
Run을 호출하는 대신 스레드를 시작하는 이유는 무엇입니까?
스레드를 시작하면 직접 호출하는 것보다 여러 가지 이점이 있습니다. run():
차이를 보여주는 예:
차이점을 설명하려면 다음을 고려하세요. 예:
public class ThreadExample extends Thread { @Override public void run() { System.out.println("Thread is running..."); } public static void main(String[] args) { ThreadExample thread = new ThreadExample(); // Call the run() method directly - executed in the main thread thread.run(); // Start the thread - runs concurrently with the main thread thread.start(); } }
이 코드가 run() 메서드 호출로 실행되면 출력은 다음과 같습니다.
Thread is running...
이 경우 run() 메서드는 다음에서 실행됩니다. 메인 스레드이며 동시성이 없습니다. 그러나 start() 메서드 호출을 사용하여 코드를 실행하면 출력은 다음과 같습니다.
Thread is running...
... 뒤에 메인 스레드의 출력이 나타나 스레드가 동시에 실행 중임을 나타냅니다.
위 내용은 Java에서 Thread.start()와 Thread.run()을 호출하는 것의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!