ABOUT ME

코딩 복습하고 공부하는 기록

Today
Yesterday
Total
  • 쓰레드의 구현과 실행
    공부/Java 2024. 5. 6. 23:17

    쓰레드의 구현과 실행

     

    쓰레드를 구현하는 데 두가지 방법이 있다.

    ※ 어느 쪽을 선택해도 별 차이는 없다.

    1. Thread 클래스 상속

    class MyThread extends Thread {
    	public void run() { /* 작업 내용 */ }	// Thread 클래스의 run() 오버라이딩
    }

     

    쓰레드 실행

    MyThread t1 = new MyThread();	//쓰레드 생성
    t1.start();			//쓰레드 실행

     

    2. Runnable 인터페이스 구현

    class MyThread2 implements Runnable {
    	public void run() { /* 작업내용 */ }	// Runnable 인터페이스의 run() 구현
    }

     

    쓰레드 실행

    Runnable r = new MyThread2();
    Thread t2 = new Thread(r);	//Thread(Runnable r)
    // Thread t2 = new Thread(new MyThread2()); 한줄로 변경 가능
    t2.start();

     

    자바는 단일 상속의 특성을 가지고 있다.

    Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없기 때문에,

    Runnable 인터페이스를 구현하는 방법이 일반적이다.

     

     

    쓰레드의 실행 - start()

    - 쓰레드를 생성한 후에 start()를 호출해야 쓰레드가 작업을 시작한다.

    - start()를 호출한다고 바로 실행되는 것이 아니며, 스케쥴러가 실행 순서를 결정한다.

    ※ start()는 실행대기 상태에 있다는 뜻이다.

     

    1) main 메서드에서 쓰레드의 start()를 호출한다.

    2) start()는 새로운 쓰레드를 생성하고, 쓰레드가 작업하는데 사용될 호출스택을 생성한다. (공장이 2개)

    3) 새로 생성된 호출스택에 run()이 호출되어, 쓰레드가 독립된 공간에서 작업을 수행한다.

    4) 호출스택이 2개이므로 스케줄러가 정한 순서에 의해서 번갈아가며 실행된다.

    '공부 > Java' 카테고리의 다른 글

    쓰레드의 우선순위  (0) 2024.05.08
    싱글쓰레드와 멀티쓰레드  (0) 2024.05.07
    프로세스와 쓰레드  (0) 2024.05.04
    애너테이션 타입 정의하기  (0) 2024.05.03
    메타 애너테이션  (0) 2024.05.02
Designed by Tistory.