본문 바로가기

나의 창고/JAVA

JAVA 스레드

Runnable을 이용한 스레드 상속

class Top implements Runnalbe{
public void run(){
for(int i=0; i<50; i++)
System.out.print(i+"\t");
}
}

public class ThreadMain{
public static void main(String[] args){
System.our.println("프로그램 시작");
Top t = new Top();
Thread td = new Thread(t);
td.start();
....
}
}

상속을 이용한 스레드
public class white extends Thread{
public void run(){
...
}


상속을 이용한 스레드가 사용하기 편하다. 물론 기능상에 차이는 없다.

근데 왜 Runnable이라는 스레드 상용법이 있는 것일까? 다 쓸때가 있어서 그런 거겠지?

보니까 하는 말이 굳이 Runnalbe 인터페이스를 사용하는 이유는 사용하고자 하는 클래스가

다른 클래스를 미리 상속했기 때문이란다. 음.. 역시 말로는 잘 모르겠다.

예제를 보면

import java.awt.*;
class RunFrame extends Frame implemetns Runnalbe{
public void run(){
int i=0;
System.our.println("Start Thread...");
while(i<20){
System.out.print(i+"\t");
this.setTitle("Thread ..ing.." + i++);
try{
Thread.sleep(1000);
}catch(Exception e)
{
System.out.println(e);}
}
System.out.println("Thread End!");
}
}

public class RunFrameMain{
public static void main(String args[]){
RunFrame r = new RunFrame();
r.setSize(300, 100);
r.show();
Thread t = new Thread(r);
t.start();
}
}

만약 일반 메서드를 호출하는 방식으로 구현한다면 while문이 끝날때까지 Frame의 다른 작업을 할
수가 없다고 한다. 흠... 먼말이래..ㅡㅡ;




'나의 창고 > JAVA' 카테고리의 다른 글

JAVA 파일 읽을 때 필터링  (0) 2009.08.10
JAVA 폴더에 있는 파일 정열하여 가져 오는 법  (0) 2009.08.10
JAVA e.printStackTrace()  (0) 2009.07.27
JDBC connectionPoll  (0) 2009.07.24
eclipes 단축키  (0) 2009.07.06