多读和单写 - 线程安全吗?

时间:2012-10-15 09:07:41

标签: c++ multithreading thread-safety

我有一个数据结构,有两种方法可以访问它:query()和modify()。多个线程可以同时使用query(),但只有一个线程可以进入modify(),同时所有使用query()的线程必须在modify()访问之前退出。

在C ++中使这个数据结构线程安全的最佳方法是什么?

(我读到了升级读/写锁定,但我被告知它可能比使用互斥锁慢3-40倍)

1 个答案:

答案 0 :(得分:1)

通常,您应该使用互斥锁保护共享数据。

但是如果您共享数据的类型是整数,您还可以考虑使用std::atomic,这通常比锁定互斥锁快得多。