Java线程锁的简易理解
Java线程锁的简易理解
线程锁的基础理解:
在学习线程的时候,刚开始不理解锁是什么样的概念,读了很多文章后,有了自己的理解,这里的理解不是特别完善,但是有助于快速入门。
线程锁的意义:意义在于使不同线程执行同一个方法时,不被其他线程执行时的变量的影响。
先看下面的图:
多线程要同时访问一个加了锁的代码块时,不能让他们同时访问(可能会造成变量值获取的错误),此时只允许一个线程(获取了锁的线程)执行,而其他线程等这个线程释放锁后才可以执行此处代码(也是一个一个执行)。
说明:
这里的代码块是指同一个对象的同一个代码块。如果对象不同,那么多个线程执行的就相当于是不同的代码块(不同对象的同一个代码块),此时就可以按照下图理解:
说明:也就是说,不同对象的同一段代码,其实是相当于两个代码块了,所以对其中一个对象加锁时,不会影响另一个对象的这段代码的执行。