실행 가능한 run() 및 Thread start()
질문:
동시 Java 프로그래밍의 Runnable 인터페이스는 작업의 진입점인 run() 메서드를 정의합니다. 마찬가지로 Thread 클래스에는 새로운 실행 스레드를 시작하는 start() 메서드가 있습니다. 이 두 가지 방법의 주요 차이점은 무엇입니까?
답변:
기본적인 차이점은 스레드 생성 및 실행에 있습니다.
실행 가능한 실행 (): 스레드 생성 없음
스레드 시작(): 스레드 생성
예:
Runnable 인터페이스를 구현하는 두 클래스 R1과 R2를 고려해보세요.
class R1 implements Runnable { public void run() { ... } } class R2 implements Runnable { public void run() { ... } }
다음에서 코드 조각, r1.run() 및 r2.run()이 직접 호출됩니다. 이는 새 스레드가 없음을 의미합니다.
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); }
반대로 다음 코드는 t1과 t2라는 두 개의 새로운 스레드를 생성하고 시작합니다.
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 및 t2와 관련된 작업은 r2는 새로 생성된 스레드 내에서 동시에 실행됩니다.
위 내용은 실행 가능한 run()과 Thread start()의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!