c++ – Why use a mutex and not a semaphore?