비디오: 자바 기초 프로그래밍 강좌 23강 - 객체 지향 기법의 활용 (Java Programming Tutorial 2017 #23) 2024
LaunchEvent라는 또 다른 자바 클래스를 생성하여 발사 패드에 범람, 이벤트 시작 및 해제와 같은 특정 카운트 다운 이벤트를 트리거하는 스레드의 경우. 이 클래스는 쓰레드를 생성하고 시작하는 또 다른 기법을 사용합니다. 하나는 코드의 몇 줄을 더 필요로하지만 더 유연합니다.
Thread 클래스를 확장하는 클래스를 만드는 문제는 클래스가 하나의 수퍼 클래스를 가질 수 있다는 것입니다. 스레드 객체가 다른 클래스를 확장하도록하려면 어떻게해야할까요? 그 경우, Thread 클래스를 확장하는 것이 아니라 Runnable 인터페이스를 구현하는 클래스를 작성할 수 있습니다.
Runnable 인터페이스는 스레드로 실행할 수있는 객체를 표시합니다. 스레드에서 실행되는 코드가 포함 된 run 메서드는 하나뿐입니다. Thread 클래스 자체는 Runnable을 구현하므로 Thread 클래스에 run 메서드가 있습니다.
Runnable 인터페이스를 사용하여 스레드를 만들고 시작하려면 다음을 수행해야합니다.
-
구현 클래스 만들기 실행 가능.
-
Runnable 클래스에 run 메서드를 제공합니다.
-
Thread 클래스의 인스턴스를 생성 해, Runnable 객체를 파라미터로서 생성자에게 건네줍니다.
Runnable 클래스를 실행할 수있는 Thread 객체가 생성됩니다.
-
Thread 객체의 start 메소드를 호출합니다.
Runnable 객체의 run 메소드가 호출되어 별도의 스레드에서 실행됩니다.
처음 두 단계는 쉽습니다. 트릭은 여러 가지 방법으로 완료 할 수 있기 때문에 세 번째 및 네 번째 단계에 있습니다. Runnable 클래스의 이름이 RunnableClass 인 것으로 가정하면 다음과 같은 한 가지 방법이 있습니다.
RunnableClass rc = 새로운 RunnableClass (); 스레드 t = 새 스레드 (rc); 티. 스타트();
Java 프로그래머는 가능한 간결하게하기를 원하기 때문에이 코드를
Thread t = new Thread (new RunnableClass ())와 같은 형태로 압축하는 경우가 종종 있습니다. 티. 스타트();
또는 심지어 this:
new Thread (new RunnableClass ()). 스타트();
이 싱글 라인 버전은 나중에 프로그램의 스레드 객체에 액세스 할 필요가 없다면 작동합니다.