美文网首页
synchronized与Lock的区别

synchronized与Lock的区别

作者: xuyouxin1 | 来源:发表于2018-03-26 17:56 被阅读0次

文章:https://www.cnblogs.com/baizhanshi/p/6419268.html

https://blog.csdn.net/u012403290/article/details/64910926?locationNum=11&fps=1

一、synchronized是一个关键字,是jvm里面对方法或代码块进行加锁。Lock是一个类,提供了比synchronized更加灵活的功能。

二、synchronized对修饰的代码块进行加锁、解锁;Lock必须显示的unLock解锁,否则可能造成死锁。

三、synchronized特点:可重入,不可中断,非公平

Lock特点:可重入,可中断,可公平

可重入:method1和method2都是加锁的方法,method1中调用method2,不需要重新获取锁

可中断:线程1占用了锁,线程2请求锁请求不到处于阻塞状态,这时候,如果锁是Lock锁的话,可以对线程2进行interrupt(加锁时要用lockInterruptibly方法)

公平锁:线程获取锁的顺序与线程请求锁的顺序一致,即先请求的先获取

四、Lock可分为读锁和写锁

读锁是共享锁,写锁是互斥锁。如果多个线程都是获取读锁,可以同时并发执行。

相关文章

网友评论

      本文标题:synchronized与Lock的区别

      本文链接:https://www.haomeiwen.com/subject/agwpqftx.html