Какие данные хранятся в "Указателе типа объекта" и "Индекс блокировки синхронизации"?

В CLR каждый экземпляр имеет 2 дополнительных поля для хранения некоторых данных для управления объектом:

  • Указатель указателя типа
  • Индекс блокировки синхронизации

Можете ли вы в основном объяснить, что они хранят внутри и кратко, как они используются CLR?

Спасибо!

Ответ 1

Указатель типа объекта является указателем на описание типа объекта. Это используется, чтобы выяснить, каков фактический тип объекта, например, необходимо делать виртуальные вызовы.

Индекс блока синхронизации - это индекс в таблицу блоков синхронизации. Каждый объект может иметь блок синхронизации, содержащий информацию, используемую Monitor.Enter и Monitor.Exit.