目录
前言
锁对于我来说是一个很难理解的机制,因为底层知识了解不够。只是在Java层面用过其提供的synchronized关键字还有reentrantlock。弱点专攻,所以我专门找了书籍去看了这方面的知识,由于本人能力有限,所以以下言论有错还请各位指出。
关中断
用过锁的同学都知道,锁可以同步一段临界区(访问共享资源的代码段)。而同步如果不要管它的效果的话,最简单的理解就是:A在执行的时候,不允许任何线程抢过cpu,不管你是时钟中断,还是其他什么中断。那好,现在我们知道中断可以打断线程的执行。嗯?是不是想到什么了,我在A执行阶段关中断不就可以实现“锁”了么?答案是正确的(最早的互斥量的解决方案之一就是临界区关中断),但是下面的缺点可能让你打消这个念头!
临界区关中断实现互斥量优缺点
优点:
- 这个方法的好处就是简单。你当然不用想破了脑子去弄明白为什么这方法是可行的。没有了中断,线程就可以保证它执行的代码确实会执行,并且不会有其他线程会干扰它。
缺点:
- 这个方法要求我们允许任何调用线程取执行特权操作(即中断的开和关),而且还要信