D2.0类具有__monitor
类属性,“允许访问类对象的监视器”(documentation)。我搜索了一下,除了this详细信息之外没有找到任何信息。那么:什么是显示器?为什么一台显示器用于所有synchronized member functions?是synchronization primitive用于同步与Java类似的成员函数吗?如果您不应该使用它/用例是什么,为什么语言def中的__monitor
属性?
答案 0 :(得分:7)
监视器是一个延迟初始化的对象,所有同步的方法都在同步,就像在Java中一样。与Java不同,D是一种系统编程语言,并且在您需要破解它们的情况下公开事物如何工作的较低级别细节,即使这样做通常一个坏主意。这允许您自定义行为。例如,可以自定义类的监视器对象,或者使用与拥有它的类共享监视器的core.sync.mutex
。