我有以下结构
struct info {
unsigned long a;
unsigned long b;
};
atomic <info> data;
由写入线程和读取线程使用。读者必须尽快对新值做出反应。为此,我在阅读器中实现了以下内容:
while (true) {
auto value = data.load();
// do some operations given these new values
}
此操作非常占用处理器资源。我选择了这种方法,因为我相信它比使用条件变量然后在数据更改时等待读取器线程被唤醒要快。此外,数据更新非常频繁,每秒数百次。有没有更好的方法来做到这一点,同时仍然具有最快的反应时间?