我正在将现有的 C++ 项目移植到 Objective-C++ 并遇到了这个互斥锁的东西。我不确定这里做了什么,如果它是正确的。要初始化某种多线程锁机制(称为“CriticalSection”),请执行以下操作:
#include <pthread.h>
pthread_mutex_t cs;
pthread_mutexattr_t attr;
稍后在代码中:
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&cs, &attr);
进入“锁”有:
pthread_mutex_lock(&cs);
离开“锁”:
pthread_mutex_unlock(&cs);
pthread_mutex_destroy(&cs);
我的问题(因为我不知道这是如何完成的)是:这看起来像一个正确的实现吗?因为我遇到了看起来锁定机制不起作用的问题(错误的内存访问错误,在使用“CriticalSection”的情况下损坏的指针)。