当一个线程访问某对象的synchronized方法或者synchronized代码块时,其他线程对该对象的该synchronized方法或者synchronized代码块的访问将被阻塞
当一个线程访问某对象的synchronized方法或者synchronized代码块时,其他线程仍然可以访问该对象的非同步代码块
当一个线程访问某对象的synchronized方法或者synchronized代码块时,其他线程可以访问该对象的其他的synchronized方法或者synchronized代码块
当在对象上调用其任意synchronized方法的时候,对象都被加锁
(1) synchronized 修饰方法时锁定的是调用该方法的对象。它并不能使调用该方法的多个对象在执行顺序上互斥。(2)在synchronized锁上阻塞的线程是不可中断的(3) synchronized锁释放是自动的(4),线程在竞争synchronized锁时是非公平的(5)synchronized锁是读写互斥并且读读也互斥,
(1)ReentrantLock锁能实现可中断的阻塞。(2)ReentrantLock释放非自动需要在try-finally块中释放锁.(3)ReentrantLock能够实现锁的公平性(4)ReentrantReadWriteLock分为读锁和写锁,而读锁可以同时被多个线程持有,适合于读多写少场景的并发。