多核心與同步

關於計數型號誌(counting semaphore)的用法,下列何者最適當?

  1. A一定將某個變數的值變成2倍
  2. B將程式的執行全部集中到一個執行緒
  3. C讓同時可使用數量有限的資源(例如:連線最多4條),最多供4個執行緒同時使用
查看答案與解析

正確答案:C. 讓同時可使用數量有限的資源(例如:連線最多4條),最多供4個執行緒同時使用

號誌擁有表示剩餘數量的計數器,使用前先減1(若為0就等到增加為止),用完後加1。若將初始值設為4,同時最多可有4個執行緒使用資源。若初始值設為1,則可像鎖一樣用於互斥。一般而言,等待中的執行緒會休眠,並由作業系統喚醒。

  • A. 它不是用來計算數值的。
  • B. 它是用來限制平行執行的,但並非集中成一個。
  • C. 正確。以計數器管理剩餘的數量。
練習這個領域 前往領域頁面

多核心與同步的其他題目

  1. 關於快取一致性與記憶體一致性模型的差異,下列說明何者正確?
  2. 關於硬體交易式記憶體(hardware transactional memory)的概念,下列何者正確?
  3. 以條件變數(condition variable)「等到佇列不為空」時,被喚醒後之所以用while敘述而非if敘述重新確認條件,其理由下列何者正確?
  4. 兩個核心各自的快取中都有變數x的副本。核心0寫入x之後,核心1讀取x時,若沒有快取一致性(cache coherency)機制,可能發生下列何種問題?
  5. 快取一致性協定MESI的四種狀態,下列哪一組是正確的?

這個領域的比較