잠 금 레코드 -- 잠 금 기록

1837 단어
잠 금 기록 은 편향 잠 금 최적화 와 경량급 잠 금 최적화 에 사용 되 는데 이 글 은 관련 성 만 정리 할 뿐이다.기본 문제
  • 데이터 구조 와 openjdk 실현
  • 언제 만 들 어 졌 습 니까?어디서 만 듭 니까?
  • 무슨 작용 이 있 습 니까?

  • 1. 데이터 구조 와 openjdk 는 lock record 의 데이터 구 조 를 실현 합 니 다.
    The lock record holds the original value of the object’s mark word and also contains metadata necessary to identify which object is locked.
    lock record 의 openjdk 는 openjdk 에서 두 가지 유형 BasicObjectLockBasicLock 을 통 해 이 루어 집 니 다. 데이터 구 조 는 다음 과 같 습 니 다.
    // A BasicObjectLock associates a specific Java object with a BasicLock.
    // It is currently embedded in an interpreter frame.
    class BasicObjectLock VALUE_OBJ_CLASS_SPEC {
     private:
      BasicLock _lock;                        // the lock, must be double word aligned
      oop       _obj;                         // object holds the lock;
    };
    class BasicLock VALUE_OBJ_CLASS_SPEC {
     private:
      volatile markOop _displaced_header;
    };
    

    2. 언제 만 들 어 졌 습 니까?어디서 만 듭 니까?lock record 생 성 시기
    대상 체 가 Monitorenter bytecode 에 의 해 가 벼 운 잠 금 상태 일 때, lock record 는 잠 금 취득 작업 을 수행 하 는 스 레 드 의 스 택 에 암시 적 으로 또는 명시 적 으로 할당 되 어 있 습 니 다.잠 긴 스 레 드 를 가 져 오 는 스 택 에 표시 되 거나 암시 적 으로 lock record 를 할당 합 니 다.
    lock record 생 성 위치
    Interpreted frames contains a region which holds the lock records for all monitors owned by the activation. during interpreted method execution this region grows or shrinks depending upon the number of locks held. lock record 는 스 레 드 의 Interpretered Frame (해석 프레임) 에서 분 배 됩 니 다.
    3. 무슨 효과 가 있 습 니까?
  • displaced word 와 잠 긴 대상 의 메타 데 이 터 를 가지 고 있 습 니 다.
  • 해석 기 는 lock record 를 사용 하여 불법 잠 금 상 태 를 검사 합 니 다.
  • 잠 금 재 입 메커니즘 의 카운터 역할 을 암시 적 으로 한다.

  • 참고 자료
  • 《Eliminating Synchronization-Related Atomic Operations with Biased Locking and Bulk Rebiasing》
  • 좋은 웹페이지 즐겨찾기