쓰레드(Thread) - JAVA

mingggkeee·2022년 1월 23일
0

Java

목록 보기
7/20

Thread

  • 메모리를 할당받아 실행 중인 프로그램을 프로세스라고 한다.
  • 스레드란 프로세스 내에서 실행되는 흐름의 단위라고 할 수 있다.

Thread 생성

  • 2가지 방법
    • 직접 상속 받아 쓰레드 생성
    • Runnable 인터페이스를 구현해서 생성

Thread 클래스 이용

  • Thread 클래스로부터 제공되는 run() 메소드를 오버라이딩 해서 사용
  • 현재의 클래스가 이미 다른 클래스로부터 상속 받고 있다면 Runnable 인터페이스를 이용하여 생성
  • run() 메소드가 종료되면 스레드는 종료된다
    • 스레드를 계속 실행시키고 싶다면 run()메소드를 무한루프 속에 실행시켜야할 것
  • 한번 종료한 스레드는 다시 시작시킬 수 없다.
    • 스레드 객체를 다시 생성해야 한다.

스레드 상태는 JVM에 의해 기록 관리 된다.

  • 스레드의 상태 6가지

① NEW : 스레드가 생성되었지만 스레드가 아직 실행할 준비가 되지 않았음

② RUNNABLE : 스레드가 실행되고 있거나 실행준비되어 스케쥴링은 기달리는 상태

③ WAITING : 다른 스레드가 notify(), notifyAll()을 불러주기 기다리고 있는 상태(동기화)

④ TIMED_WAITING : 스레드가 sleep(n) 호출로 인해 n 밀리초동안 잠을 자고 있는 상태

⑤ BLOCK : 스레드가 I/O 작업을 요청하면 자동으로 스레드를 BLOCK 상태로 만든다.

⑥ TERMINATED : 스레드가 종료한 상태

profile
만반잘부

0개의 댓글