MultiThread를 구현시키기 위해서는 두가지 방법이 존재한다.
1. Runnable 인터페이스를 구현하여 Thread 생성자로 해당 구현체를 넘겨주는 방법
2. 직접 Thread 클래스를 상속하는 방법
Thread 클래스를 상속받으면, 다른 클래스를 상속받을 수 없기 때문에 Runnable 인터페이스를 구현하는 방법이 일반적이다. 또한, run() 메소드만 오버라이딩 할 경우라면 Runnable 인터페이스를 사용하고, Thread의 다른 메소드들을 오버라이딩 할 것이라면 Thread 클래스를 상속하는 방식을 택하면 된다.
몇 가지 다른 점이 존재하는데 Runnable 인터페이스를 구현한 경우, Runnable 인터페이스를 구현한 클래스의 인스턴스를 생성한 다음, 이 인스턴스를 Thread 클래스 생성자의 매개변수로 제공해야한다. Thread t2 = new Thread(new ThreadEx1_2());
또한, Thread 클래스를 상속받은경우, 자손 클래스에서 조상 클래스 Thread 클래스의 메소드를 직접 호출할 수 있지만, Runnable을 구현하면 Thread클래스의 static 메소드인 currentThread()를 호출하여 쓰레드에 대한 참조를 얻어와야 호출 가능하다.
Thread를 10개를 생성하고 각 Thread에서 5개의 숫자를 출력시키는 프로그램을 짜보았다.
반응형
'프로그래밍 > Java' 카테고리의 다른 글
[Java] HashMap 사용법 (0) | 2022.02.10 |
---|---|
[Java] HashSet과 TreeSet 사용법 (0) | 2022.02.10 |
[Java] ArrayList 사용법 (0) | 2022.02.10 |
[Java] 자바의 Collections (List, Set, Map)의 용도와 예제 (0) | 2022.02.10 |
[Java] ArrayList로 고객관리 프로그램 작성하기 (2) | 2022.02.10 |