CRITICAL_SECTION用于设置和获取单个bool值

ST3*_*ST3 4 c c++ windows winapi multithreading

现在写class得很复杂,觉得我用得太多了CRITICAL_SECTION.

据我所知,某些类型的原子操作总是在没有任何硬件或软件中断的情况下执行.

我想检查一下我是否理解正确.

  • 要设置或获取原子值,我们不需要CRITICAL_SECTION因为这样做不会有中断.
  • bool 是原子的.

所以有我的陈述,想问一下,如果它们是正确的,如果它们是正确的,那么什么类型的变量也可以设置或没有CRITICAL_SECTION

PS我在谈论为每种方法获取或设置一个单值,而不是两个,而不是五个,而是一个.

doc*_*ove 5

  1. 您不需要锁定原子数据,但在内部它们可能会锁定.注意,例如,C++ 11 std::atomic有一个is_lock_free功能.
  2. bool可能不是原子的.看到这里这里