2017-05-03 148 views

回答

-1

信號量是一個廣義的互斥量。代替單個緩衝區,我們可以將4 KB緩衝區分成4個1 KB緩衝區(相同的資源)。信號量可以與這四個緩衝區相關聯。消費者和生產者可以同時在不同的緩衝區中工作。

http://www.geeksforgeeks.org/mutex-vs-semaphore/

+0

那麼,如果我們確實有一些泛化的實體,爲什麼我們需要專門的實體呢?爲什麼我們不能總是使用廣義的? – pavelkolodin

0

互斥主要存在來保護的代碼的臨界段。與信號量相比,它可以比信號量更好的性能,因爲代碼更簡單,更短,或者它可以提供更豐富的功能。

互斥鎖有很多種類型:「普通」互斥量,遞歸互斥量,共享互斥量(讀寫器鎖定)。一些互斥體實現可以嘗試實現「優先級繼承」來對抗優先級反轉。所有這些都不能用於信號量,因爲它的使用模式太寬泛了。

相關問題