본문으로 바로가기

Thread 생성방법

category Java언어 2018. 8. 16. 13:36

작업 thread의 생성

1. thread code를 작성

2. JVM에서 thread 객체 생성

3. thread code를 실행하도록 요청



Thread code

run() method에 작성된 code를 thread code라고 말한다.

thread는 run() method의 실행과 종료를 기준으로 thread도 종료되기 때문이다.

따라서 thread code를 작성하기 위해선 run() method를 오버 라이딩 해야한다.

 


Thread 객체 생성 방법  2가지

1. Thread class를 상속받은 sub class로 부터 객체 생성

          1) Thread class를 상속받아 sub class 생성

          2) Thread class의 run() method를 overridding (thread code 작성)

          3) 스레드 객체 생성

          4) start() method를 호출하여 작업 thread시작 

class Task_thread extends Thread{                        // 1. Thread class를 상속받아 sub class 생성
                            
    @Override
    public void run() {                                  // 2. run() method를 Overridding해서 thread code 작성
        while(true) {
            System.out.println("New Task Thread!");
            
            try {
                currentThread().sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        
        }        
    }    
}
 
public class Main {
    public static void main(String args[]) {
        
        System.out.println("Main Task start");
        
        Task_thread task = new Task_thread();            // 3. thread 객체 생성
        task.start();                                    // 4. 작업 thread 시작
    }
}
        
    
cs


 

2. Runnable interface Type을 매개 변수로 받는 Thread class의 Constructor를 호출

  1) Runnable interface를 implements해 구현 class 생성

  2) Runnable interface의 run() method를 Overridding (Thread code 작성)

  3) thread 객체 생성

  4) start() method를 호출하여 thread 시작 

 

class Task2_Thread implements Runnable{                      // 1. Runnable interfacedml 구현 class 생성
 
    @Override
    public void run() {                                      // 2. run() method를 Overridding해서 thread code 작성
        while(true) {
            System.out.println("New Task Thread2!");
            
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }    
    }
}
 
 
public class Main {
    public static void main(String args[]) {
        
        System.out.println("Main Task start");
        
        Thread task = new Thread(new Task2_Thread()) ;        // 3. thread 객체 생성
        task.start();                                        // 4. 작업 thread 시작            
    }
}

cs

 

 

'Java언어' 카테고리의 다른 글

Data Type(기본형,참조형)의 종류와 Size  (1) 2018.08.16
Thread Life Cycle (생명 주기)  (0) 2018.08.16
Thread란?  (1) 2018.08.16
OOP 란?  (0) 2018.08.16
Wrapper클래스 활용  (0) 2018.07.10