안녕하세요
이번 시간에는 자바에서 스레드를 작성하는 두번째 방법..
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 클래스를 상속 받는 방법과 큰 결과의 차이는 없습니다.
하지만 두가지 방법 다 알면 상황에 맞게 유용하게 쓸 수 있으니
두가지 방법 모두 다 아는게 좋을것 같습니다.
댓글 없음:
댓글 쓰기