互斥锁保护阵列元素

时间:2013-09-23 18:12:22

标签: c multithreading mutex

我正在尝试设计一个线程安全代码,该代码具有静态结构数组作为多个线程使用的资源。

这是结构的样子

typedef struct resource{

int used;
int fd;
char *filename;
}resource;

static resource resource_list[20] = {0};

线程将在其生命周期内使用resource_list中的一个结构,并在完成后释放它。

我轮询用于决定某个人是否正在使用struct的值(如果resource_list [i] .used == 1 //正在使用)。

但是我想以线程试图获取对resource_list [i]成员的锁定的方式来设计它,如果它失败,它会转移到下一个成员,意识到第i个成员正在使用而不等待它。

我应该使用互斥列表,每个数组元素对应一个吗?如果线程无法获取该互斥锁,如何确保线程进入下一个元素?

0 个答案:

没有答案