其他分享
首页 > 其他分享> > Lock--RLock

Lock--RLock

作者:互联网

两者的区别是

一个是递归锁,

一个是普通锁。

 普通锁会傻不拉几的去请求资源,锁定,然后是阻塞且未或者未设置超时,它请求不到就在那儿等着。非阻塞,就是随缘请求,请求不到就算了。

递归锁,顾名思义,递归,更严格一点应该叫自身递归,自身递归是自己调用自己,

如果是去调用了别人就不叫自身递归了。如果发现调用者线程是自己,自身递归层数增加。

锁定多少次就释放多少次,必须让内部的 递归层次计数器归为0.

或者是去占用获取其他的线程。

 

这个案例只是简单的测试。

在sleep的2秒,其他的线程也想要占用,但是当前的owner不一样,就进行阻塞获取。所以会等到两次release,

先前占用的线程释放了资源之后其他线程才能获取。

标签:请求,递归,Lock,占用,阻塞,RLock,线程,自身
来源: https://blog.csdn.net/rubikchen/article/details/88071994