void lock();
bool try_lock();
template<class Clock, class Duration> bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);
template<class Rep, class Period> bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);
void unlock();