在不同平台上相对较大的std::mutex大小(例如,40个甚至80个字节)通常被解释为确保互斥量不占用相同的缓存行,因此不会产生逻辑上不必要的获取和同步活动。
然而,std::mutex通常嵌入到更大的对象中,其大小(几乎从设计上来说)对真正的共享是有害的。
最小互斥量的好设计是什么?
一个字节的自旋锁设计相当简单,但是一个“真”互斥锁,其中线程挂起直到通知是一个更大的挑战。我找不到一种可移植的方式,让线程通知另一个线程在不诉诸互斥的情况下取消挂起/解除睡眠。
https://softwareengineering.stackexchange.com/questions/345576
复制相似问题