자바(Java) - 쓰레드(Thread) 개념과 예제 part3 - Runnable을 상속받는 경우

안녕하세요

이번 시간에는 자바에서 스레드를 작성하는 두번째 방법..

 java.lang.Runnable 인터페이스를 상속받아 구현하는 방법에 대해

글을 써볼까 합니다.


2> Runnable을 상속받는 경우
역시 run()메소드를 오버라이딩

class Snail implments Runnable  
{  
          public void run(){  
         // 스레드가 할 일을 구성  
         }  
}/////////////////////////  

**응용 프로그램에서는 아래와 같이 사용
Snail r=new Snail();  
Thread tr=new Thread(r);  
tr.start();


자 그럼 위의 지식을 기반으로 간단한 예제 작성해보겠습니답~

class Snail implements Runnable{
String name;

public Snail(String name){
this.name=name;
}

@Override
public void run(){
for(int i=1;i<=5;i++){
System.out.println(name+"스레드가 기어가요~~");
try{
Thread.sleep(1000); // 1초 쉬기
}catch(Exception e){

}
}
}
}

public class ThreadTest3 {

public static void main(String[] args) {

//1) Runnable 객체를 생성
Snail sl1 = new Snail("사과");
Snail sl2 = new Snail("포도");
Snail sl3 = new Snail("딸기");

//2) Thread 객체를 생성할 때 생성자 안에 Runnable 객체를 전달한다
Thread sr1 = new Thread(sl1);
Thread sr2 = new Thread(sl2);
Thread sr3 = new Thread(sl3);

//3) Thread start() 메소드를 호출
sr1.start(); sr2.start(); sr3.start();

}
}

사실 위의 소스도 바로 전에 올렸던 Thread 클래스를 상속 받는 방법과 큰 결과의 차이는 없습니다.

하지만 두가지 방법 다 알면 상황에 맞게 유용하게 쓸 수 있으니

두가지 방법 모두 다 아는게 좋을것 같습니다.


댓글 없음:

댓글 쓰기