- 메인 스레드(Main thread)

    main() 메소드 실행하면 시작됨
   첫 코드부터 차례로 순차적으로 실행, 마지막 코드 or return 만나면 실행 종료

- 어떤 자바건 메인 스레드는 반드시 존재. 작업 이외의 추가적인 병렬 작업의 수만큼 스레드 생성

 


1. java.lang.Thread 클래스 객체화 생성 가능 

   ex)class Task implements Runnable 
   ex)Thread thread = new Thread(Runnable target);  //생성자 호출

   runnable 은 작업 스레드가 실행할 수 있는 코드를 가지고 있는 개체, 인터페이스 타입이기 때문에 구현 객체 만들어 대입, 실체 스레드 아님
   public void run(){} -> 재정의해서 작업 스레드가 실행할 코드 작성
  
   ex)  1) 기본 
             class A implements Runnable{             //Runnable 구현
                           public void run(){              //인터페이스 구현을 받아서 재정의 필요
                                         //실행문
                            }
                }

              class b {
                            public static void main(String[] args){
                                     Runnable task = new A();                     //Runnable를 구현하는 A를 만들고
                                     Thread thread = new Thread(task);         //스레드로 만들어
                                     thread.start();                                     //실행
                                      //메인에서 돌아갈 스레드 만들기
                                }
             }

 


        2) Runnable 익명 객체 이용

           Thread thread = new Thread(new Runnable(){
                      @override
                      public void run(){
                             //실행문
                     }
           });



       3) 람다식 이용

            Thread thread = new Thread(()-> {
                 //실행문
          });

 


2. Thread 상속해 하위 클래스 만들어 생성 가능 
: 작업 스레드가 실행할 작업을 Runnable로 만들지 않고, Thread의 하위 클래스로 작업 스레드를 정의하면서 작업 내용 포함 가능
    
ex) public class A extends Thread {
                @override
                 public void run(){
                        //실행문
                 }
     }
    public class b {
                  public void main(String[] args){
                         Thread thread = new A();
                         thread.start();     //스레드 실행
                   }
    }


ex) 익명 객체
    Thread thread = new Thread(){
                    public void run(){
                              //실행문
                     }
    }


- Thread 호출 -> thread.start(); 를 통해 run() 실행

'JAVA' 카테고리의 다른 글

멀티 스레드_4  (0) 2019.06.19
멀티 스레드_3  (0) 2019.06.19
멀티 스레드_1  (0) 2019.06.18
기본 API 클래스  (0) 2019.06.18
예외 처리  (0) 2019.06.18

+ Recent posts