简明扼要阐述synchronized和lock的区别
来源:互联网 发布:pdg文件在mac 编辑:程序博客网 时间:2024/06/05 04:25
- 公平锁。syn是非公平锁,无法保证线程按照申请锁的顺序获得锁,而Lock锁提供了可选参数,可以配置成公平锁,也可以配置成非公平锁。通常来说,非公平锁的效率比公平锁要高。
- 可中断锁。一个线程使用syn获取锁,除非该线程成功获取到锁,否则将一直阻塞住。而Lock锁提供了lockInterruptibly()接口,提供了可中断的操作。
- 带超时时间的锁。Lock锁提供了tryLock(long time, TimeUnit unit)带超时时间的获取锁的接口,在等待指定时间后,如果获取不到锁,则放弃获取锁。
- 读写锁。syn是读写、读读、写写均互斥的,而ReadWriteLock则分别提供了读锁和写锁,使得读读可以并发执行。
- 自动释放锁。如果用syn加锁,当发生异常时(比方运行时异常),那么jvm会自动释放掉线程持有的锁,而lock锁则不会主动释放,除非调用了unlock接口,因此使用lock锁时有可能导致死锁。
- 在ReentrantLock上可以绑定多个Condition条件,也就是可以拥有多个等待队列,比如在实现生产者消费者的时候,使用一个队列(锁的队列)存放等待 队列(生产者消费者的队列)有元素的消费者,使用另一个队列(锁的队列)存放等待 队列not full的生产者,相比较synchronized和wait notify而言,避免了错误的唤醒生产者或者消费者的开销。
- 可重入锁。二者都是可重入的~
阅读全文
1 0
- 简明扼要阐述synchronized和lock的区别
- synchronized和lock的区别
- synchronized和Lock的区别
- synchronized和lock的区别
- synchronized和lock的区别
- Lock和synchronized的区别
- synchronized和Lock的区别
- synchronized和Lock的区别
- synchronized和Lock的区别
- Lock和synchronized的区别
- synchronized和lock的区别
- synchronized和lock的区别
- Lock和synchronized的区别
- Synchronized和Lock的区别
- synchronized和lock的区别
- synchronized和Lock的区别
- synchronized和lock的区别。
- synchronized和lock的区别
- 排序算法(六)---- 归并排序
- 【leetcode】219. Contains Duplicate II(Python & C++)
- iBATIS SQL Maps之Inline Parameter Map。
- 统计数字问题(未完待续)
- element ui表单验证
- 简明扼要阐述synchronized和lock的区别
- HDU 2594 Simpsons’ Hidden Talents——kmp
- Java多线程--读写锁的使用
- B
- ECMA-Script6之Destructuring 解构
- PAT 乙级真题题解1001~1005
- Linux中Web环境的搭建LNMP
- 虚函数用作private会怎样?
- 类型转换