Thread 컨트롤

조상원·2025년 8월 2일

JAVA

목록 보기
30/34
  • 행 중인 스레드의 상태를 제어하기 위한 것
  • 효율적이고 정교한 스케줄링을 위한 스레드 상태를 제어하는 기능

스레드 상태

  • 실행 대기는 스레드 생성 후 start() 호출 시, 스케줄에 의해서 실행을 대기하는 상태
  • 실행은 실행 대기 상태의 스레드 중에서 스케줄링으로 선택되어 run() 메소드가 실행되고 있는 상태
  • 일시정지는 스레드가 실행 상태에서 일시정지된 상태
  • 일시정지된 스레드를 다시 실행 상태로 가기 위해서는 실행 대기 상태가 되어야 함

스레드 제어 메소드

리턴 타입메소드설명
voidinterrupt()InterruptException을 발생시키고 일시 정지 상태인 스레드를 실행 대기 상태로 만든다. (예외 처리를 통해 스레드를 다시 실행하거나 종료할 수 있다.)
voidjoin()다른 스레드가 종료될 때까지 기다렸다가 종료되면 다시 해당 스레드를 실행한다.
voidjoin(long millis)지정된 시간이 지나거나 다른 스레드의 작업이 종료되면 해당 스레드를 실행한다.
voidjoin(long millis, int nanos)지정된 시간이 지나거나 다른 스레드의 작업이 종료되면 해당 스레드를 실행한다.
voidsleep(long millis)실행 중인 스레드를 일정 시간 일시정지 상태로 만든다.
voidsleep(long millis, int nanos)실행 중인 스레드를 일정 시간 일시정지 상태로 만든다.
voidyield()실행 중인 스레드를 실행 대기 상태로 만들고 동일한 우선순위 또는 높은 우선순위를 갖는 스레드에게 실행 기회를 가질 수 있도록 양보한다.
voidwait()객체의 잠금을 풀고 스레드를 일시 정지 상태로 만든다.
voidwait(long timeout)객체의 잠금을 풀고 스레드를 일시 정지 상태로 만든다. 지정된 시간이 지나면 실행 대기 상태로 만든다.
voidwait(long timeout, int nanos)객체의 잠금을 풀고 스레드를 일시 정지 상태로 만든다. 지정된 시간이 지나면 실행 대기 상태로 만든다.
voidnotify()wait()에 의해 일시 정지된 스레드 중 한 개를 실행 대기 상태로 만든다.
voidnotifyAll()wait()에 의해 일시 정지된 모든 스레드들을 실행 대기 상태로 만든다.
voidstop()스레드를 즉시 종료 시킨다.

0개의 댓글