티스토리 뷰

프로그래밍/JAVA

JAVA Thread 사용법

rlawlstjd007 2016. 11. 16. 10:52
Thread 를 시작하는 방법

1. Runnable 객체 (스레드에서 할 작업)를 만든다.

1
Runnable job = new MyRunnable();



 Runnable 은 인터페이스 입니다. Runnable 인퍼페이스를 구현하는 클래스를 만들어야 하며 스레스에서 처리할 작업은 그 클래스에서 정의합니다. 즉, 새로운 스레드의 호룻 스택에서 실행할 메소드를 그 클래스에서 정의해야 합니다.


2. Thread 객체(일꾼)을 만들고 그 객체에 Runnable 객체(작업)를 전달한다.



1
Thread thetThread = new Thread(job);





 새로운 Runnable 객체를 Thread 생성자에 전달합니다. 이렇게 하면 새로운 Thread 객체에서 새로운 스택 맨 밑에 넣을 메소드(Runnable 객체의 run() 메소드) 를 알려줄 수 있습니다.



3. Thread 객체를 시작시킨다.

1
testThread.start();




 Thread의 start() 메소드를 호출해야지만 Thread 인스턴스에서 새로운 실행 스레드를 만들어냅니다. 새로운 스레드가 시작되면 Runnable 객체의 run() 메소드를 받아서 새로운 스레드의 스택 맨 아래에 집어 넣습니다.



Runnable 객체란
 스레드 에서 해야 할 일을 만들려면 Runnable 인터페이스를 구현해야 합니다.  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class testRunnable /*implements Runnable*/{                // Runnable은 java.lang 패키지에 들어있기 때문에 import 선언문을 쓰지 않아도 됩니다.
    public void run(){                            
        go();                                            // Runnable에는 구현할 메소드가 public void run() 하나 밖에 없습니다. 스레드에서 실행해야 할 작업이 바로 여기에 들어가야 합니다.
    }                                                    // 새로운 스택 맨 밑에 이 메소드가 들어갑니다.
    public void go(){
        do();
    }
    public void doExcute(){
        System.out.println("top of the stack");
    }
}
 
public class ThreadTester{
    public static void main(String[] args){
        Runnable threadJob = new testRunnable();        // 이렇게 하면 스레드에 새로운 스택 맨 아래에 집어넣을 메소드를 알려줄 수 있습니다.
        Thread myThread = new Thread(threadJob);
 
        myThread.start();
    
        System.out.println("back in main");
    }
}
 
cs


 그럼 아래와 같은 형식으로 스레드가 생성됩니다. 실행결과는 어떨까요 ? 그 내용에 대해선 다음 Chapter에서 알아보도록 하겠습니다.



출처 : headfirst JAVA

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

JAVA sleep 에 대해  (0) 2016.11.16
JAVA Thread의 상태와 스케줄러  (0) 2016.11.16
JAVA Thread에 대해  (0) 2016.11.15
JAVA 엑셀 파일 불러오기  (1) 2016.11.05
(JAVA0 SerialVersionUID 정의 및 사용법  (0) 2016.10.27
댓글