본문 바로가기

Programming/JAVA

JAVA Thread


실행 중인 하나의 프로그램을 프로세스라고 한다면 그 프로세스내에서의 하나의 작업단위를 스레드라고 부른다.

멀티스레딩이란 프로그램 내에서 코드나 데이터를 공유하면서 동시에 여러가지 작업단위를 처리하는 것을 말한다.

  • 각 스레드는 스택 메모리 영역을 가지고 있다.
  • 프로세스와는 달리 독립적이지 않은 동일한 코드와 데이터를 공유하기 때문에 자원을 절약할 수 있다.
  • 스레드는 결과적으로 전체적인 어플리케이션의 성능향상에 도움을 준다.


* 스레드 작성 방법


1. java.lang.Runnalble 인터페이스 이용

Runnable 인터페이스에는 run()이라는 추상메소드를 하나 가지고 있다. run() 메소드 내에서 구현한 내용은 실제 스레드에 의해 실행되는 코드가 된다.

public class TestRunnable implements Runnable {
        int  value;   // 공유자원

        public void run()  {
             // 구현
         }
}     

public class TestThread {
        
       public static void main(String[] args)  {

         Runnable r = new TestRunnable();
        
         Thread t1 = new Thread(r);
         Thread t2 = new Thread(r);

          t1.start;
          t2.start;
       }
 }


이러한 방법을 사용하면 Thread 클래스를 상속받지 않기 때문에 다른 클래스를 extend 할 수 있다 하지만 다음 방법으로는 Thread를 직접 상속받아 run() 메소드를 오버라이딩 하기 때문에 더 간단한 코드이기는 하지만 다른 클래스로부터의 상속은 불가능 하다.

2. java.lang.Thread 클래스 이용

example source code )

public class MyThread extends Thread{

          public void run() {    //Thread() 에 구현되어진 run() 메소드 오버라이딩
                   int i = 0;

                   while(true) {
                            System.out.println("Hello " + i++);
                            if(i == 50){
                                      break;
                            }
                    }
            }

          public static void main(String args[]){
                    Thread t = new MyThread();
                     t.start();   // Thread 수행
          }
  }

  


'Programming > JAVA' 카테고리의 다른 글

JAVA java.io 패키지  (0) 2010.02.24
JAVA Thread ( Cont. )  (0) 2010.02.24
JAVA 예외처리  (0) 2010.02.23
JAVA Collection API  (0) 2010.02.23
JAVA String 과 StringBuffer  (0) 2010.02.23