我想确定是否可以同时从多个线程调用 C 中的某些函数,以便了解是否需要使用互斥锁来保护它。实现和定义函数的文件没有任何互斥机制,因此有可能只有一个线程访问该函数,但有可能多个线程访问。
我想添加一个线程本地存储变量,我在启动函数时递增,在退出函数时递减。如果递减后变量的值大于 0,则多线程访问该函数。
这是我的代码:
#include <stdio.h>
static __thread int threadCounter = 0;
void f(void)
{
threadCounter++;
// do something
threadCounter--;
printf("threadCounter: %d\n", threadCounter);
}
a想知道这个解决方案是否足以确定多个线程是否访问一个函数以及是否有更好的方法来实现这一点。