我是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
您需要在以下.c
文件之一中定义互斥量:
pthread_mutex_t mux;
然后您需要在其中一个.h
文件中进行前向声明:
extern pthread_mutex_t mux;
通常的约定是,将前向声明放入与该.h
文件相对应的.c
文件中,但是没有理由不能将其放入另一个.h
文件中。您只需要记住.h
要包括的内容即可。确保包括.h
定义了变量的文件以及在任何地方使用该文件的文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句