안녕하세요
이번 시간에는 자바에서 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();
}
}
위의 소스를 실행하면 아래와 같은 화면 결과가 나옵니다.
댓글 없음:
댓글 쓰기