2010-07-13 35 views
0

1字節共享資源上是否需要互斥量?如果不是,那爲什麼不呢?考慮我正在使用普通桌面PC Pentium IV,32位。如果使用core 2 duo,條件會改變嗎?1字節共享資源上的互斥量

回答

2

這取決於你將如何處理它,但是如果你有多個編寫器,用C或C++實現,那麼你需要一個互斥體 - 資源的大小不是問題。

+0

是的,有多個寫入和讀取。 – Alam 2010-07-13 10:55:51

+0

只是爲了澄清我的疑惑:如果CPU是單處理器,那麼在讀取單字節(或32位機器上的字)時,如果發生中斷,會在讀/寫完整字或錐切換後立即發生上下文切換?總之讀取/寫入完整的單詞需要多少CPU週期。 – Alam 2010-07-14 03:47:25

+0

@alam無論它需要多少個時鐘週期,更新一個值都無關緊要,編譯器可以發出基本上可以讀取,更改和寫入(即至少三條機器指令)的代碼,並且不需要互斥鎖切換到另一個線程可以發生在他們中的任何一個之後.. – 2010-07-14 09:21:10

0

CPU並不重要,因爲任務調度程序可以隨時中斷線程。大小無關緊要。如果它是共享的,那麼你需要一些鎖定方法。