Thread-Safe Counter: Two Synchronization Approaches

Question 24 / 51 Correct so far: 0 (0 answered)

Snippet A

Mutex Counter

void increment() {
    std::lock_guard<std::mutex> lock(g_mutex);
    ++g_counter;
}

increment();
Snippet B

Atomic Counter

void increment() {
    g_counter.fetch_add(1, std::memory_order_relaxed);
}

increment();
Shared test data (shared-setup)
// (no shared data; each variant owns its counter)

Which snippet is faster?

Select the correct answer(s)