以线程安全的方式访问C中的数据结构

时间:2018-02-01 06:41:11

标签: c multithreading

我不熟悉使用C进行多线程处理并且处理一个项目,在该项目中,我在多个线程之间共享一个全局数据结构,许多线程写入它并从中读取一些线程。我打算创建一个线程安全的机制来访问数据结构。 我想到了一种方法,但打算问这是否是正确的方法。 所以,为了简单起见,我假设只有一个参数表(让它称之为速度),它由几个线程访问: 到目前为止,我已经做了以下事情:

GlobalData.h

int GetData();
void SetData();

GlobalData.c

#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,并且内部线程安全。 你认为这是一种正确的方法吗?

0 个答案:

没有答案