대기와 알림

  • 멀티 스레드 환경에서 신호를 주고 받는 방식으로 흐름을 동기화 하는 구조
    • 대기 후 알림
    • synchronized 기반 Thread.wait(), notify()
    • LockSupport.park(), unpark()
      • 이건 경량방식
      • 스핀락방식?
  • 개별 스레드의 실행 흐름은 스케줄링에 따라 달리질 수 있으므로 반드시 순서를 맞추어야 하는 경우에 유용

join()은 어떤 스레드가 종료가 되는 타이밍을 위한 것.

반명에, 종료 시점이 아닌 A흐름 중간에 다른 B 스레드가 wait 를 하고있다 그러던중 A흐름에서 notify에 도달해서 이를 알리고 wait 하던건 그제야 다시 실행을 시작하는 것

wait후 notify가 되야됨. 이거 없으면 데드락 발생.