lock概述:
reentrant 翻译:可重入,折返
Lock lock = new ReentrantLock();//默认使用非公平锁,如果要使用公平锁,需要传入参数true
Lock接口有3个实现它的类:ReentrantLock、ReetrantReadWriteLock.ReadLock和ReetrantReadWriteLock.WriteLock,即重入锁、读锁和写锁
推荐:
优先用synchronized【jvm为:jdk1.6~1.8】
区别:
1、reentrantLock需要finally手动释放锁 ,有condition、设置公平锁等机制
2、synchronized采用悲观锁机制,直接由JVM托管 ; reentrantlock采用乐观锁机制,是java写的控制锁的代码,关键方法compareAndSetState