前言
原来的一位同事@炮哥, 昨天在QQ问我:
“想请教下一个线程获得lock之后,也可能被其他的线程释放掉?这个是因为线程之间的资源是共享的吗?这样的话普通的thread lock 都是不安全的了?”.
我第一反应就是怎么可能:’谁加锁谁解锁呗,别的线程怎么能解锁?’
炮哥发来一段python官网的文档说明:
1 |
|
最有最后一句前是分号. 简单地说,一个线程获取锁, 以后的尝试获取都会被阻塞,除非它会释放. 但是 同时 其他其他线程可以释放
好,写个例子验证下:
1 |
|
奇迹发生了…. 线程b果然可以释放线程a的锁,颠覆人生观啊.
PS: 但是Rlock不会被其他线程释放,因为它记录该线程的所有者
版权声明:本文由 董伟明 原创,未经作者授权禁止任何微信公众号和向掘金(juejin.im)转载,技术博客转载采用 保留署名-非商业性使用-禁止演绎 4.0-国际许可协议
python