在共享库中使用哪种类型的锁机制,即由posix线程访问

时间:2013-06-24 09:36:48

标签: c multithreading locks

我有一个使用posix线程的应用程序,即使用一个静态库,它有一些全局变量,我在libray中没有任何线程实现。 有人告诉我,如果你在该文件中使用pthreads,你应该使用pthread_mutex,否则就是简单的互斥锁。

由于库是无线程的,因此在库中使用锁(特别是互斥锁)来保护全局变量。

我试过linux / kernel / mutex.h,显然不好用内核的对象在用户空间和编译器中使用太多警告。 那么我将从哪里获得这个简单的互斥锁!!!

1 个答案:

答案 0 :(得分:0)

#include<pthread.h>

int main(int argc, char** argv){
    pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
    pthread_mutex_lock(&lock);
    pthread_mutex_unlock(&lock);
}

您可以使用以下代码编译:{{1​​}}(注意不要使用-lpthread作为解释,请参阅此主题中的EmployedRussian答案:Undefined reference to pthread_create in Linux

如果你把它编译成你就在那里