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 클래스에서 제공하는 메서드