1,reentrantlock首先在锁的粒度方面来看,比synch的锁粒度更小,在性能方面在jdk优化以前性能远远不如jdk,在通过借鉴reentrantlock的自旋锁以后,防止操作系统多次从用户态到内核态的转换,浪费系统资源,使的synch性能提高,
2, synch是关键字,在jvm运行肯定比reentrantlock这个api锁更加优势
3, synch可以主动放弃锁,reentrantlock不可以主动放弃自己的锁,这样可以很大程度上避免死锁,每次都得在finnaly里面unlock锁
4,synch使用的时候不能定点的激活某个线程,只能激活某个,或者全部,而在reentranlock里面可以使用条件队列来实现定点的激活某线程,这个是在实际操作中非常便利的。
5,synch是不公平锁机制,reentrantlock是可以实现公平锁机制和非公平锁机制的。
6,reentrantlock在长时间拿不到锁的情况下,可以自动释放锁,用的lock.lockinterruptibly()函数
09-03
1493
07-02
275