대기와 알림
- 멀티 스레드 환경에서 신호를 주고 받는 방식으로 흐름을 동기화 하는 구조
- 대기 후 알림
- synchronized 기반 Thread.wait(), notify()
- LockSupport.park(), unpark()
- 이건 경량방식
- 스핀락방식?
- 개별 스레드의 실행 흐름은 스케줄링에 따라 달리질 수 있으므로 반드시 순서를 맞추어야 하는 경우에 유용
join()은 어떤 스레드가 종료가 되는 타이밍을 위한 것.
반명에, 종료 시점이 아닌 A흐름 중간에 다른 B 스레드가 wait 를 하고있다 그러던중 A흐름에서 notify에 도달해서 이를 알리고 wait 하던건 그제야 다시 실행을 시작하는 것
wait후 notify가 되야됨. 이거 없으면 데드락 발생.