16.1.4  可锁定类型

16.1.4 可锁定类型

线程是可以和其他可执行代理(或线程)并行的执行工作任务的。调用线程是可以根据实际情况决策的,可调用线程包含了调用本身。标准库模板uique_lock、lock_guard、lock、try_lock和条件变量均可以运行或者执行用户提供的可锁定对象。无论是基本可锁定性能、可锁定性能,还是定时可锁定性能,均是锁的功能和要求。“锁”的目的就在于获取和释放被操作对象的所有权。

1.基本可锁定性能

长整型类型L满足基本可锁性能要求,例如下面表达式中的m代表长整型数据。

978-7-111-51399-5-Chapter16-1.jpg

2.可锁定性能

如果L类型对象能满足基本可锁定性能要求,那么也可满足可锁定性能要求,例如,

978-7-111-51399-5-Chapter16-2.jpg

3.定时可锁定性能

如果长整型变量满足可锁定性能要求,那么也可满足定时可锁定性能。例如,

978-7-111-51399-5-Chapter16-3.jpg

上述语句的功能:在延时rel_time之后,获取线程锁的所有权。在执行过程中,在时间rel_time之内,只有在获取线程锁的所有权之后,函数才能返回。如果有异常发生,线程锁不能获取当前线程的操作权限。

978-7-111-51399-5-Chapter16-4.jpg

功能描述:在绝对延时(abs_time)之后,尝试获取线程锁的所有权。