2012-10-17 66 views
0

「監視器是語言特定的結構」 - 這是什麼意思?這是否意味着它們依賴於編譯器/編程語言?如果是這樣,他們不能在C中實現對嗎? 我被要求在C中實現一個監視器。最初雖然是一個監視器結構..但因爲它不能保存函數,所以它是沒有用的。任何想法的人?預先操作系統中的監視器

+0

如果沒有上下文,那麼引用聽起來完全錯誤。當然,你可以在C中實現一個,就像你可以在C中執行OOP和虛函數一樣。只是風格和慣例是不同的。 – Jon

+0

c提供的抽象功能對監視器來說不夠強大,因爲它是獨立的數據結構,不是嗎? – 404

+0

我不確定「獨立數據結構」是什麼意思。 C沒有類,所以你用結構和自由函數來模擬它們。 – Jon

回答

1

Some languages

由於具有內置的支持被稱爲顯示器的同步原語。其他人沒有。 C沒有。它可以用C實現,但其實現將最終取決於CPU和/或OS。

+0

它肯定有可能在像java這樣的語言..但在C做它困惑我...我需要閱讀關於虛擬功能的實現......就像Jon所說的那樣......只有這樣我才能知道如何在c – 404

+0

中實現這一點如果有幫助,已經證明監視器,信號量和條件變量是等價的並且可以是彼此構建。 –

+0

這似乎是一個非常合理的事情假設,如果你要在C ...建立一個顯示器......只是使用條件變量作爲信號量和另一個互斥體,以確保只有1個進程進入控制進入顯示器的「功能」 – 404