容错读写器访问共享资源

时间:2014-08-12 21:32:09

标签: c++ multithreading synchronization locking lock-free

我目前正在为一个应用程序进行原型设计,该应用程序在共享内存中维护共享资源,并且可以由单个编写器通过多个读取器(通常为4)读取来更新。读者和作者作为一个单独的过程运行。作者更频繁地更新共享内存比阅读它的读者更新。

共享资源是一个结构数组,每个结构都有一个锁以保护对它的访问。 write获取锁并为elements [i]写入最新值并释放锁。

struct Data
{
  int a;
  int b;
  char[10]; c
  Lock l;
};

struct Data elements[ 10000 ];

我面临以下挑战

1)Lock l应该具有最小的开销。 2)由于我们有很多读者,我正在寻找具有读者作家语义的东西。 3)如果其中一个进程崩溃,则应该正常释放锁。

有人可以指出一些有关这些的文献吗?如果您能分享解决类似挑战的经验,我将不胜感激。

我将在C ++中实现该解决方案 感谢。

0 个答案:

没有答案