Tag: 互斥体

线程互斥行为

我正在学习C.我正在编写一个multithreading的应用程序; I know that when a variable is shared between two or more threads, it is better to lock/unlock using a mutex to avoid deadlock and inconsistency of variables. This is very clear when I want to change or view one variable. int i = 0; /** Global */ static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; /** […]

如何在linux中配置pthread互斥?

我想知道如何配置pthread互斥锁以查看我的代码中是否存在任何锁定争用点。 (谁喜欢有争议的代码,对吧?:)我知道如何对代码进行更全面的分析,正如我在这里提到的那样。 但我想知道是否有任何工具或选项可用于配置互斥锁定,这将提供有关互斥锁定争用的指标/统计数据,以查看我是否有任何问题区域。 这是一些背景和背景: 最近我使用Cavium Octeon CPU开发了一个嵌入式C ++项目。 Octeon SDK使用自旋锁实现互斥式样式同步。 通过Octeon文档,我发现了一种分析自旋锁的方法,以便能够看到每个自旋锁在等待锁变为可用时必须旋转多少次。 要使用它,我必须进行条件编译,然后每次自旋锁旋转时它会增加一个计数器,然后我可以查询微调器等待值。 所以,我所做的是封装自旋锁并添加了为系统中使用的所有自旋锁转储自旋锁微调器等待值的function。 实际值并没有多大意义,但有一些与其他人相比具有非常高的价值,我专注于减少对这些人的争论。 我知道这对于自旋锁来说可能相当容易,因为它只是每次旋转一个计数器,但通过相关的pthread手册页和头文件读取我没有找到类似的东西,是否有可用于pthread互斥锁? 我真的很想避免像每次锁定之前和之后花时间做一些hacky。 PS:互斥体的复数是多少? 互斥,muteces,mutexi,muti ??? 互斥量从来没有对我说话。