본문 바로가기

JAVA

스레드(Thread) 기본 실습

 ThreadEx01 클래스 


//스레드 기본 실습 클래스

public class ThreadEx01 extends Thread {    //순수상속

       

        //run 메서드 안에 구현된 내용 - 스레드화 되어서 처리되는 로직

        @Override

        public void run() {

               super.run();

              

               for(int i = 1 ; i <10 ; i++){

                       System.out.println("스레드 1 실행");

               }

              

        }      

}


 

 

 

 

ThreadEx02 클래스

//스레드 기본 실습 클래스2

public class ThreadEx02 implements Runnable {    //구현상속 : 인터페이스

 

        @Override

        public void run() {

               for(int i = 1 ; i <10 ; i++){

                       System.out.println("스레드 1 실행");

               }

        }

}


 

 

 

 

 

메인 클래스


//스레드 기본 실습

 

public class ThreadMain {

        public static void main(String[] args) {

              

               System.out.println("프로세스 시작");

              

               //자바 기본 : 단일 상속

              

               //ex1

//             ThreadEx01 te1 = new ThreadEx01();

//             te1.start();           //start 스레드 실행 (run 아님!)

              

               //ex2

               // 자주 사용되는 케이스임. (why? : 단일 상속 문제를 해결하기 위해 인터페이스 사용)

               ThreadEx02 te2 = new ThreadEx02();

               Thread t2 = new Thread(te2);

               t2.start();

              

               ThreadEx02 te3 = new ThreadEx02();

               Thread t3 = new Thread(te3, "Thread b");     //스레드의 이름을 구현

               t3.start();

              

               System.out.println("프로세스 ");

                      

        }

} 


 

 

 

 

 

출력물


프로세스 시작
프로세스 끝
스레드 1 실행
스레드 1 실행
스레드 1 실행
스레드 1 실행
스레드 1 실행
스레드 1 실행
스레드 1 실행
스레드 1 실행
스레드 1 실행


//syste.out.println("프로세스 끝"); 이 스레드보다 먼저 실행됨