고급자바_Thread_메서드

oungoo·2020년 9월 24일
0

JAVA_고급

목록 보기
8/19

Thread의 메서드

sleep()

  • 실행중인 Thread를 일정시간동안 일시정지
  • 1/1000 초 단위

join()

  • 특정 Thread가 끝날 때까지 대기하다가 종료되면 현재 Thread 실행

start() & run()

  • start() : 새로운 Thread가 작업을 실행하는데 필요한 호출스택을 생성한 후, run() 호출해 스택에 저장
  • run() : 단순히 클래스에 오버라이딩 된 메서드를 호출해서 사용하는 것
    start()메서드 없이 호출하면 single Thread Program

- Multi Thread 실행 흐름

yield()

  • 현재 실행중인 스레드보다 우선순위가 같거나 높은 스레드에게 실행기회 제공(양보)
  • 현재 실행 중인 스레드의 상태를 Runnable(실행대기)로 바꿈
    waiting이나 Block 상태로 바뀌지 않음
  • yield() 메서드를 실행한다고 현재 실행중인 스레드가 곧바로 Runnable 상태가 되는 것은 아님.

wait()

  • 동기화 영역에서 락을 풀고 Wait-Set영역(공유객체별로 존재)으로 이동시킴

notify() or notifyAll()

  • Wait-Set 영역에 있는 스레드를 깨워서 실행할 수 있도록 함

wait(), notify(), notifyAll()

  • 동기화영역에서만 실행 가능
  • Object 클래스에서 제공하는 메서드

0개의 댓글