การล็อก mutex ที่ปลดล็อกมีประสิทธิภาพเพียงใด Mutex มีราคาเท่าใด
ในภาษาระดับต่ำ (C, C ++ หรืออะไรก็ตาม): ฉันมีตัวเลือกระหว่างการมี mutexes หลายอัน (เช่น pthread ให้ฉันหรืออะไรก็ตามที่ไลบรารี่ของระบบดั้งเดิมจัดหาให้) หรืออันเดียวสำหรับวัตถุ มันมีประสิทธิภาพแค่ไหนในการล็อค mutex? คือมีกี่คำสั่งแอสเซมเบลอร์และโอกาสที่จะใช้เวลาเท่าไหร่ (ในกรณีที่มีการปลดล็อค mutex) Mutex มีค่าใช้จ่ายเท่าไหร่ เป็นปัญหาหรือไม่ที่จะมีmutex จำนวนมากจริงๆ หรือฉันสามารถโยนตัวแปร mutex ให้มากที่สุดเท่าที่ฉันมีได้ในintตัวแปรและมันก็ไม่สำคัญอะไร (ฉันไม่แน่ใจว่าความแตกต่างระหว่างฮาร์ดแวร์ต่างกันมากแค่ไหนถ้ามีฉันอยากรู้เกี่ยวกับมันด้วย แต่ส่วนใหญ่ฉันสนใจฮาร์ดแวร์ทั่วไป) ประเด็นก็คือโดยการใช้ mutex หลายตัวซึ่งแต่ละส่วนครอบคลุมเพียงส่วนหนึ่งของวัตถุแทนที่จะเป็น mutex เดียวสำหรับวัตถุทั้งหมดฉันสามารถป้องกันได้หลายบล็อก และฉันสงสัยว่าฉันควรจะไปไกลแค่ไหนกับเรื่องนี้ คือฉันควรพยายามที่จะป้องกันบล็อคที่เป็นไปได้จริง ๆ เท่าที่จะเป็นไปได้ไม่ว่าจะซับซ้อนกว่านี้มากเท่าใด การโพสต์บล็อกของ WebKits (2016) เกี่ยวกับการล็อคนั้นเกี่ยวข้องกับคำถามนี้มากและอธิบายความแตกต่างระหว่าง spinlock, ล็อคปรับตัว, futex และอื่น ๆ