본문 바로가기
프로그래머/프로그래밍

자바 쓰레드

by plog 2008. 11. 24.

다른 프로그래밍 언어와 달리 자바에서는 쓰레드를 언어 차원에서 지원을 하고 있다.따라서 멀티쓰레딩 코드를 작성하는데 유리하다. 자바에서 쓰레드를 지원하는 방식은 Threa 클래스를 이용하는 방법과 Runnable 인터페이스를 사용하는 두 가지 방식이 있다. Thread 클래스는 쓰레드를 객체화한 클래스이다. 따라서 쓰레드를 지원하고자 하는 클래스를 만들고자 하면 간단하게 이 Thread 클래스를 상속받아 사용하면 된다. 하지만 다른 클래스로부터 반드시 상속이 필요한 경우에는 Runnable 인터페이스를 사용해야 한다.

Thread 클래스 사용 예제
import java.util.*;
public class Sample extends Thread{
  long toAdd;
  String name; 
  Sample(long t, String n){
      toAdd = t;
      name = n;  
  }
 
public void run(){
  long all=0;
  for(int i=0;i<=toAdd;i++){
      try{
         sleep(10);
      }catch(InterruptedException e){  }
         all +=i;
         System.out.println(name+" : "+all);
     }  
 }
 public static void main(String[] arg){
    Sample t1, t2;
    t1 = new Sample(3, "첫번째");
    t2 = new Sample(3, "두번째");  
    t1.start();
    t2.start();
  }
}

Runnable 인터페이스 사용 예제
import java.util.*;
import java.awt.*;

public class Sample extends Frame implements Runnable{  
  public Sample(int n){
  }
 
  public void update(Graphics s) {
  }
 
  public void run(){
    Rectangle rec = getBounds();
    for(int i=0;i<num;i++)
    {
        try{
          Thread.sleep(100);
        }catch(Exception e){  }
    }
  }
 
  public static void main(String[] arg){
    Sample s = new Sample(500);
    Thread t = new Thread(s);
    t.start();
  }
}

댓글