Understanding lock-free atomics in C++
This easy question tests whether you know which atomic types the C++ standard guarantees will be implemented without locks. It's the kind of foundational language knowledge that Intel and other systems-programming companies expect from candidates working on high-performance or embedded code.
The answer hinges on understanding the distinction between lock-free and potentially lock-free atomic operations. The C++ standard makes explicit guarantees about only one atomic type, while others depend on the target platform and compiler. Knowing this difference is essential when writing code that must avoid contention and latency spikes in latency-sensitive systems.
- The
std::atomic_flag type and its semantics - Lock-free guarantees vs. compiler/hardware implementation
- Using
is_lock_free() to query atomicity at runtime