질문을 오늘 3개나 올리네요…
하지만 절대 구글링을 안해본 것은 아닙니다…
닷넷에서 new 키워드로 하여금 인스턴스 할당 시
동기화 블록 인덱스 + 타입 객체 포인터 + 인스턴스 주소
이렇게 3개가 할당되는 거로 책에서 보고 이해했습니다.
인스턴스 주소야 실제 인스턴스가 할당된 메모리의 주소일 거고, 타입 객체 포인터는 찾아보니 타입에 대한 정보 같습니다.
그런데 동기화 블록 인덱스는 대체 뭔가요?
찾아보니 전부 Thread를 lock 으로 동기화 할 때 동기화 블록으로 한다라고 하는데…
사실 lock을 보여주는 모든 예제들이 object 객체를 할당에서 사용하지만 어떤 원리인지 설명해주는 글은 못 본 것 같습니다. 그래서 그러려니 하고 넘어갔는데 이 동기화 블록 인덱스를 검색하니 lock 키워드와 함께 동기화 블록에 대해서 나오고, 닷넷에는 동기화 블록 테이블이 있고 그 테이블의 인덱스가 '동기화 블록 인덱스(SBI) 라고 하는데 정확하게 어떤 역할을 하는지 잘 이해가 가지 않습니다.
닷넷에서 동기화 블록 인덱스는 어떤 역할을 하고 있나요?