std::mutex的使用备忘

在实际测试中,与使用自实现的自旋做同步比较(看上也是自旋),std::mutex在效率上没有大的差异。

但是当出现竞争时,std::mutex的lock会完全的等待,此时CPU利用率会很高,当然其等待也是有收益的:效率最高。

 

但是,在一般的应用里,我们能查看任何管理器时,我们总是蜜汁不希望CPU满载(不想让风扇狂转?)

 

降低CPU负载的套路是:使用trylock。不光出让时间片,还得退出竞争。

当然,随之带来的也是效率的下降(-15%?)

 

我们的测试是基于4C16G硬件。

应用的测试方案是下图(3P3C):

std::mutex的使用备忘