我不熟悉使用C进行多线程处理并且处理一个项目,在该项目中,我在多个线程之间共享一个全局数据结构,许多线程写入它并从中读取一些线程。我打算创建一个线程安全的机制来访问数据结构。 我想到了一种方法,但打算问这是否是正确的方法。 所以,为了简单起见,我假设只有一个参数表(让它称之为速度),它由几个线程访问: 到目前为止,我已经做了以下事情:
int GetData();
void SetData();
#include "GlobalData.h"
static int speed;
static mutex mut;
void SetSpeed( int inSpeed )
{
mut.lock();
speed = inSpeed;
mut.unlock();
}
int GetSpeed()
{
mut.lock();
int val = speed;
mut.unlock();
return val;
}
现在所有线程都被强制使用GlobalData.h中给出的API,并且内部线程安全。 你认为这是一种正确的方法吗?