從使用僅同步方法(沒有鎖或 同步語句)接近於梅薩顯示器,其中 有每個監視器一個條件變量的限度Programming Language Pragmatics, by Scott具有同步方法和同步語句的對象如何分別類似於監視器和條件關鍵區域?
Java對象(並且事實上具有同步語句的對象有時在Java中稱爲 監視器)。
爲什麼僅使用同步方法的Java對象與Mesa監視器非常相似,其中每個監視器有一個條件變量的限制?
「僅使用同步方法的Java對象」中沒有條件變量是否正確?那麼它怎麼能像一個條件變量的監視器?
同樣的道理,Java中的同步語句與等待在一個循環開始 類似於其中的 條件複檢已經作出了明確一個CCR。因爲通知也是明確的,所以在實現關鍵的 部分的每個退出時,Java實現不需要重新評估條件(或者明確地喚醒 線程) - 僅限於發生通知的那些條件。
爲什麼在Java中,與等待在循環開始 synchronized語句酷似CCR(有條件的關鍵區域),其中的條件複檢已經作出了明確?
這是什麼意思?「因爲通知也是顯式的,Java實現不需要在關鍵部分每次退出時重新評估條件(或喚醒顯式執行的線程) - 只有那些發生通知的部分」?
謝謝。
*「爲什麼X像Y'」 *,因爲它們看起來相似,又稱他們在行爲方式相似。如果你瞭解X的行爲,那麼你很快就會明白Y的行爲。你是否理解「Mesa監視器」或「CCR」?如果不是這樣,比較對理解Java監視器沒有幫助,而且任何詳細的逐個功能比較都不會對您有所幫助。如果你理解這些,爲什麼你不認爲它們類似於Java特性? – Andreas
如果您使用關於顯示器的一些常識,您實際上不需要知道Mesa:Mesa顯示器是顯示器。 – Ben