Что такое монитор класса в D?

Классы D2.0 имеют a __monitor свойство класса, которое "предоставляет доступ к монитору объекта класса" (документация). Я искал вокруг немного и не нашел информации за исключением этого бита детали. Так: что такое монитор? Почему один монитор используется для всех синхронизируемых функций членства? Действительно ли это - синхронизация, примитивная используемый для синхронизации функций членства, подобных Java? И почему __monitor свойство в определении языка, если Вы, как предполагается, не используете его / каковы примеры использования?

11
задан stephan 8 March 2010 в 08:43
поделиться

1 ответ

Монитор - это объект с отложенной инициализацией, с которым синхронизируются все синхронизированные методы, как в Java. В отличие от Java, D является языком системного программирования и раскрывает детали более низкого уровня того, как все работает, на тот случай, если вам нужно их взломать, даже если это обычно - плохая идея. Это позволяет вам настроить поведение. Например, можно настроить объект монитора для класса или использовать core.sync.mutex , который использует монитор совместно с классом, которому он принадлежит.

7
ответ дан 3 December 2019 в 11:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: