When creating a std::unique_lock, there are three different locking strategies to choose from: std::try_to_lock, std::defer_lock and std::adopt_lock
std::try_to_lock allows for trying a lock without blocking:
{
std::atomic_int temp {0};
std::mutex _mutex;
std::thread t( [&...