synchronized原理
在Java中,一个对象有且仅有一个锁对象,白话解释锁依赖于对象而存在
我们调用某对象的synchronized方法时,就获取了该对象的同步锁;列如:synchronized(object),就是要获取object对象的同步锁。不同线程对同步锁的访问时互斥的;白话解释就是当一个对象已经获取到同步锁,其他对象就不能访问了,打个比方我只有一俩车,我开走了,其他人只有等我用完了,才有机会开。
synchornized 基本原则
1)一个线程访问了某对象的synchronized方法或synchronized代码块,其他线程对该对象的该synchronized方法或synchronized代码块的访问将被阻塞
2)一个线程访问了某对象的synchronized方法或synchronized代码块,其他线程仍然可以该对象的非同步代码块
3)一个线程访问了某对象的synchronized方法或synchronized代码块,其他线程对该对象的其他synchronized方法或synchronized代码块的访问将被阻塞