0

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

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

我尝试了 linux/kernel/mutex.h ,即使用内核对象在用户空间中使用显然不好,编译器也警告。那么我在哪里可以得到这个简单的互斥锁!!!

4

1 回答 1

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);
}

您可以使用以下方法进行编译:(gcc -o mutex program.c -pthread -Wall -Wextra -pedantic注意不是 -lpthread 的解释,请参阅此线程中 EmployedRussian 的答案:Undefined reference to pthread_create in Linux

如果你得到这个编译你就在那里

于 2013-06-24T09:48:24.400 回答