Thread

  • Process : 개별적으로 동작하는 프로그램 (Eclipse, Messaenger etc)
  • Thread : Process를 구성하는 작은 실행단위 (Messenger = chat + file transfer)

  • Multi-process : 동시에 여러개의 process를 실행 = 각 프로세스가 독립적인 메모리
  • Multi-thread : 하나의 process 에서 여러개의 thread가 동시에 동작 = 스레드가 자신이 속한 프로세스의 메모리 공유

Thread 생성

Runnable interface 구현

class ThreadWithRunnable implements Runnable {

    public void run() {

        for (int i = 0; i < 5; i++) {
            System.out.println(Thread.currentThread().getName()); 
            // 현재 실행 중인 스레드이름 반환

            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Thread class 상속

class ThreadWithClass extends Thread {

    public void run() {

        for (int i = 0; i < 5; i++) {
            System.out.println(getName());  
            // 현재 실행 중인 스레드이름 반환
            
            try {
                Thread.sleep(10);          // 0.01초간 스레드를 멈춤
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
  • test
    public class Thread01 {
    
      public static void main(String[] args){
    
          // Thread 클래스를 상속받는 방법
          ThreadWithClass thread1 = new ThreadWithClass();  
          // Runnable 인터페이스를 구현하는 방법
          Thread thread2 = new Thread(new ThreadWithRunnable()); 
    
          thread1.start(); // 스레드의 실행
          thread2.start(); // 스레드의 실행
      }
    }
    


업데이트: