스레딩의 Run()과 start() 비교: 종합적인 설명
멀티 스레드 프로그래밍에서 Thread.run 간의 차이점을 효과적으로 이해 () 및 Runnable.run()은 중요합니다.
질문:
다음 코드 조각을 고려하세요.
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); }
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start(); }
답변:
첫 번째 예: 아니요 멀티스레딩
첫 번째 스니펫에서는 r1.run() 및 r2.run()이 새 스레드를 생성하지 않고 직접 실행됩니다. 결과적으로 R1과 R2는 모두 메인 스레드 내에서 순차적으로 실행됩니다.
두 번째 예: 멀티스레딩
두 번째 스니펫에서는 Thread 개체(t1 및 t2)가 생성됩니다. R1 및 R2 인스턴스를 각각 캡슐화합니다. t1.start() 및 t2.start()가 호출되면 새 스레드가 시작되고, 각각은 기본 스레드와 병렬로 해당 Runnable 구현의 run() 메서드를 동시에 실행합니다.
키 차이점:
위 내용은 Java 스레드의 Run()과 start() 비교: 멀티스레딩 동작의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!