스레드

CHM·2022년 4월 21일

Java 활용

목록 보기
10/15

스레드의 개념

  • 프로세스 : 실행 중인 프로그램
  • 스레드 : 프로세스 내에서 독립적으로 실행되는 프로그램

스레드 생성 방법

  • Thread 클래스 상속
  • Runnable 인터페이스 구현

스레드 실행 예제

  • 스레드를 사용하지 않을 때
    • 아래 코드 실행 시 1~50,1~50이 차례대로 실행된다.
public class ThreadMain {
   
   public static void process() {
      for(int i=1; int<=50; i++) {
        System.out.println(i);
      }
   }
   
   public static void main(String[] args) {
       process();
       process();
   }
}
  • 스레드를 사용했을 때
// -------------- Thread 클래스 상속 -----------------
public class ThreadEx extends Thread {
 
   @Override
   public void run() {       // 스레드 클래스에서 상속받은 후 재정의 시키는 것!
      for(int i=1; int<=50; i++) {
        System.out.println(i);
      }
   }
}
  
// -------------- Runnable 인터페이스 상속 --------------
public class ThreadEx2 implements Runnable {
 
   @Override
   public void run() {       // 스레드 클래스에서 상속받은 후 재정의 시키는 것!
      for(int i=1; int<=50; i++) {
        System.out.println(i);
      }
   }
}

// 스레드 실행 main 문
public class ThreadMain {
   
   public static void main(String[] args) {
       Thread t1 = new ThreadEx(); 
       
       Runnable r = new ThreadEx2();   ==> 클래스를 따로 만들지 않고 익명 구현 객체 생성(or 람다)로도 구현 가능하다.
       Thread t2 = new Thread(r);
     
       t1.start();
       t2.start();
   }
}
  • 실행 결과
 1
 2
 3
 4
 1
 2
 ...

1~50이 끝까지 출력되지 않은 것으로 t1, t2는 독립적으로 실행되는 것임을 확인할 수 있다.

0개의 댓글