我是pthread和互斥锁的新手。我之前使用过它们但是在一个文件中(main.c创建线程和锁在与使用锁的函数和内存相同的文件中)。如何在相互依赖的C文件中定义互斥锁?理想情况下,我希望不改变目前的结构。
main.c // create threads, include `file1.h`
file1.h
file1.c // include `file1.h` and `lib.h`, extern a memory defined in `lib.c`
lib.h
lib.c // include `lib.h`, contain functions that malloc and dealloc memory, which need to be accessed by many threads
答案 0 :(得分:2)
您需要在其中一个.c
文件中定义互斥锁:
pthread_mutex_t mux;
然后您需要在其中一个.h
文件中转发声明:
extern pthread_mutex_t mux;
通常的惯例是你将前向声明放在与.h
文件相对应的.c
文件中,但没有理由你不能把它放在不同的文件中.h
档案;你只需要记住要包括的.h
。确保包含定义变量的.h
文件以及使用它的所有位置。