【发布时间】:2012-04-28 18:34:21
【问题描述】:
我正在开发一个具有多个线程和一个共享对象的系统。有许多线程经常执行读取操作,但写入操作很少,每天可能 3 到 5 次。
我正在使用 rwlock 进行同步,但是锁获取操作不够快,因为它一直在发生。所以,我正在寻找一种更快的方法。
也许是一种使写入函数原子化或在写入期间查看所有线程的方法。可移植性不是硬性要求,我使用的是带有 GCC 4.6 的 Linux。
【问题讨论】:
-
了解更多有关您要解决的问题的信息会很有帮助。例如,读者/作者的关键部分有多大。以及线程之间的一致性要求是什么。由于写入如此罕见,线程读取陈旧数据是否重要?根据您正在做的事情,有许多可能的低级优化可能有意义也可能没有意义。
-
读取陈旧数据没有问题,问题是在写操作时读取数据。
标签: c++ c multithreading pthreads