[동시 프로 그래 밍] LockSupport 클래스

관련 글
  • 홈 페이지 문서:https://www.apiref.com/java11-zh/java.base/java/util/concurrent/locks/LockSupport.html

  • 1. 선행 지식
    1.1 왜 LockSupport 를 사용 합 니까?
     세 가지 스 레 드 가 깨 어 날 때 까지 기다 리 는 방법:
  • Object 의 wait () 방법 으로 스 레 드 를 기다 리 게 하고 Object 의 notify 방법 으로 스 레 드 를 깨 웁 니 다
  • JUC 패키지 의 Condition await () 방법 으로 스 레 드 를 기다 리 게 하고 signal () 방법 으로 스 레 드 를 깨 웁 니 다
  • LockSupport 류 는 현재 스 레 드 를 막 고 지정 한 스 레 드 를 깨 울 수 있 습 니 다
  • 1.2 Object 클래스 에서 wait () 와 notify () 는 스 레 드 의 대기 각성 을 실현 합 니 다.
  • wait 와 notify 방법 은 동기 블록 이나 동기 화 방법 에서 쌍 을 이 루어 사용 해 야 합 니 다. wait 와 notify 방법 두 가지 모두 동기 코드 블록 을 제거 한 후 실행 효과 에 이상 이 발생 하 는 것 을 봅 니 다. Exception in thread "A" Exception in thread "B" java. lang. IllegalMonitor State Exception
  • wait 후 notify 가 있어 야 합 니 다 (먼저 notify 후 wait 가 나타 나 면 다른 스 레 드 가 대기 상태 에 있 습 니 다)
  • synchronized 는 키워드 가 JVM 차원 에 속한다.Monitorenter (바 텀 은 Monitor 대상 을 통 해 이 루어 집 니 다. 사실 wait / notify 등 방법 도 Monitor 대상 에 의존 하여 동기 블록 이나 방법 에서 만 wait / notify 등 방법 을 호출 할 수 있 습 니 다)
  • 좋은 웹페이지 즐겨찾기