A multithreaded web server wishes to keep track of the number of requests it services (known as hits). Consider the two following
strategies to prevent a race condition on the variable hits. The first strategy is to use a basic mutex lock when updating hits:
$int hits;
mutex lock hit lock;
hit lock.acquire();
hits++;
hit lock.release();
A second strategy is to use an atomic integer:
atomic t hits;
atomic inc(&hits);$
Explain which of these two strategies is more efficient.