자바(Java) - 쓰레드(Thread) 개념과 예제 part2 - Thread 클래스를 상속받는 방법

안녕하세요

이번 시간에는 자바에서 Thread 클래스를 상속 받아 이벤트를 구현하는 방법을 올려봅니다.


스레드를 작성하는 방법은 2가지가 있습니다.

이번 시간에는 첫번째 방법에 대해 기술하겠습니다.


1> java.lang.Thread 클래스를 상속받아 구현

 1>Thread를 상속받는 경우  
...run()메소드 오버라이딩.  
class SnailThread extends Thread  
{  
          public void run(){    
          //스레드가 할 일을 구성    
          }
}///////////////////////////////

**SnailThread를 사용하는 응용프로그램에서는 아래와 같이 사용한다.
  SnailThread tr=new SnailThread();   tr.start();  

run()을 호출하는 것이 아니라, start()를 호출함으로써 Thread가 실행된다.


자 위의 지식을 기반으로 간단한 예제를 작성해보겠습니다.


public class SnailThread extends Thread{

public SnailThread(String name){
this.setName(name);
}

@Override
public void run(){
for(int i=1;i<=5;i++){
// 스레드는 getName이 있다
System.out.println(this.getName()+"스레드가 기어갑니다");
int sec=(int)(Math.random()*3000+100); // 0.1~3.1 범위
try{
// sleep 하는 사이에 다른 스레드가 실행됨
Thread.sleep(sec);
}catch(InterruptedException e){
System.out.println("예외: "+e);
}

}
}

public static void main(String[] args) {
System.out.println("Hello World~");
//스레드를 작성하면 main에서 스레드를 생성하자
SnailThread tr1=new SnailThread("홀쭉이 달팽이");
SnailThread tr2=new SnailThread("뚱뚱이 달팽이");
SnailThread tr3=new SnailThread("똘똘이 달팽이");

tr1.start(); tr2.start(); tr3.start();

}
}

위의 소스를 실행하면 아래와 같은 화면 결과가 나옵니다.


댓글 없음:

댓글 쓰기