您的位置:首页 > 编程语言 > Java开发

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酌情考虑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jdk 源代码