Lock--RLock

两者的区别是

一个是递归锁,

一个是普通锁。

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

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

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

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

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

 Lock--RLock

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

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

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

上一篇:ADO.NET之命令(sql语句)


下一篇:折叠屏、智能汽车和HMS:一场关于数字生活美好体验的邂逅