std::mutex
std::lock
std::try_lock
std::lock_guard
std::scoped_lock
std::unique_lock
std::condition_variable
approxion: lock_guard vs scoped_lock