실행 중인 하나의 프로그램을 프로세스라고 한다면 그 프로세스내에서의 하나의 작업단위를 스레드라고 부른다.
멀티스레딩이란 프로그램 내에서 코드나 데이터를 공유하면서 동시에 여러가지 작업단위를 처리하는 것을 말한다.
- 각 스레드는 스택 메모리 영역을 가지고 있다.
- 프로세스와는 달리 독립적이지 않은 동일한 코드와 데이터를 공유하기 때문에 자원을 절약할 수 있다.
- 스레드는 결과적으로 전체적인 어플리케이션의 성능향상에 도움을 준다.
* 스레드 작성 방법
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 |