jdk 源码分析(8)java synchronized和锁lock对比
2017-08-02 22:52
375 查看
因为synchronized 是关键字,无法看到源代码,所以只能做一个简单的分析对比了,
synchronized 能锁方法,也能锁代码块,其实也是一种重入锁(也就是自己的锁,自己可以进去),代码块或方法离开,自动释放锁。
lock:lock能做synchronized能做的所有的事情,但是lock 能过在资源竞争地方,通过投票等方法让其他锁释放。而synchronized必须自愿,lock 需要自己释放出来,所以一般将lock.lock 放在try里面,而lock.unlock 放在finally 里面。
synchronized 配套的wait和notify ,与lock的condition 里的await和 signal 相对应,lock可以获取多个condition。
据网上资料建议:
synchronized在处理竞争压力不强的地方性能远好于lock ,而lock相反。具体什么地方使用synchronized 和lock酌情考虑。
synchronized 能锁方法,也能锁代码块,其实也是一种重入锁(也就是自己的锁,自己可以进去),代码块或方法离开,自动释放锁。
lock:lock能做synchronized能做的所有的事情,但是lock 能过在资源竞争地方,通过投票等方法让其他锁释放。而synchronized必须自愿,lock 需要自己释放出来,所以一般将lock.lock 放在try里面,而lock.unlock 放在finally 里面。
synchronized 配套的wait和notify ,与lock的condition 里的await和 signal 相对应,lock可以获取多个condition。
据网上资料建议:
synchronized在处理竞争压力不强的地方性能远好于lock ,而lock相反。具体什么地方使用synchronized 和lock酌情考虑。
相关文章推荐
- jdk 源码分析(17)java Semaphore 源码解析及与lock对比
- Java中的ReentrantLock和synchronized两种锁定机制的对比分析
- java死磕多线程(synchronized,Lock对比分析)
- jdk 源码分析(2)java hashtable的结构及hashMap对比
- jdk 源码分析(9)java ReentrantReadWriteLock分析
- java核心基础--jdk源码分析学习--TreeMap
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- java多线程之:Java中的ReentrantLock和synchronized两种锁定机制的对比 (转载)
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- Java Collections Framework之Deque(LinkedList实现)源码分析(基于JDK1.6)(已补充)
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- 【Java】HashMap源码分析(JDK1.8)
- 对比synchronized与java.util.concurrent.locks.Lock 的异同
- JDK源码分析:Object.java
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- java核心基础--jdk源码分析学习--Integer
- Java中集合框架,Collection接口、Set接口、List接口、Map接口,已经常用的它们的实现类,简单的JDK源码分析底层实现
- Java Collections Framework之Collections源码分析(基于JDK1.6)