-
15.쓰레드 생성방법 2가지?
1.java.lang.thread 클래스를 상속받아 생성하는 방법.
 
public class prac {
        class MyThread extends Thread{
               public void run(){ /* 작업내용 */ } // Thread 클래스의 run()을 오버라이딩
       }
}
 
비교적 쉬운 방법. 이 Thread 클래스가 가지는 여러 메소드들을 오버라이드 하여 구현하는데 일반적으로 다음과 같은 절차.
1) Thread 클래스를 상속받은 클래스의 run()메소드를 오버라이딩 하여 실제로 쓰레드가 실행할 코드를 기술
2) 부모 클래스인 Thread 클래스의 생성자를 호출
3) Thread 클래스로부터 상속받은 start()메소드를 오버라이드하고 이 쓰레드가 실행되도록 하기 위해서 호출
실제로, Thread 클래스를 상속받는 MyThread 클래스는 public 접근 제한자의 run()메소드를 갖고있다. 
myThread 클래스를 정의한 뒤에는 이 클래스를 인스턴스화하고 쓰레드 실행을 위해 start()메소드를 호출
 
 
 
2. Runnable 인터페이스를 구현

class MyThread1 implements Runnable{
        public void run(){ /*작업내용 */ } // runnable인터페이스의 추상메서드 run을 구현
       }
 
쓰레드로 정의하고자 하는 클래스가 Thread 클래스 이외의 다른 클래스를 이미 상속받고 있다면, 그리고 그 클래스의 주된 목적이 쓰레드와는 관계없는 클래스라면, Runnable 인터페이스를 구현하는 클래스를 정의하여 run() 메소드를 오버라이드한 다음 클래스의 인스턴스를 생성해서 start()메소드를 호출
 
Runnable 인터페이스는 단지 run()함수 하나만 포함. run()메소드는 쓰레드 실행의 경로를 나타내므로 쓰레드는 run()메소드의 실행이 끝날 때 종료.
 
Runnable 인터페이스를 구현하여 쓰레드를 사용하는 방법은 다음과 같은 절차.
1) Runnable 인터페이스를 구현. 즉 쓰레드에서 실행될 run()메소드에 코드를 기술.
2) 쓰레드 클래스의 객체가 생성. Runnable 인터페이스를 구현하는 클래스 객체를 Thread class의 인자로 전달.
3) 쓰레드를 실행하기 위하여 Start()메소드 호출


'취업Q&A > 자바 기술면접' 카테고리의 다른 글

[Java] 상속(Inheritance)이란 ?  (0) 2015.12.07
Java[자바] 직렬화 란  (0) 2015.12.07
접근제어자 구분  (0) 2015.12.07
Collection 프레임워크 (API)?  (0) 2015.12.07
추상클래스 란?  (0) 2015.12.07

다른 카테고리의 글 목록

취업Q&A/자바 기술면접 카테고리의 포스트를 톺아봅니다