编程语言
首页 > 编程语言> > JAVA并发编程学习6(Lock锁机制深入详解)

JAVA并发编程学习6(Lock锁机制深入详解)

作者:互联网

PS:
1.死锁检测相关工具:Java VisualVM
2.JDK源码学习工具网站OpenJDK:openjdk.java.net

预热知识

死锁:线程1等待线程2互斥持有的资源,而线程2也在等待线程1互斥持有的资源,两个线程都无法继续执行。
活锁:线程持续重试一个总是失败的操作,导致无法继续执行。
饿死:线程一直被调度器延迟访问其赖以执行的资源,也许是调度器先于低优先级的线程而执行高优先级的线程,同时总是会有一个高优先级的线程可以执行,饿死也叫做无限延迟。

关于Lock与synchronized关键字在锁的处理上的重要差别
1.锁的获取方式:前者是通过程序代码的方式由开发者手工获取,后者是通过JVM来获取(无需开发者干预)
2.具体实现方式:前者是通过Java代码的方式来实现,后者是通过JVM底层来实现(无需开发者关注)
3.锁的释放方式:前者务必通过unlock()方法在finally块中手工释放,后者是通过JVM来释放(无需开发者关注)
4.锁的具体类型:前者提供了多种,如公平锁,非公平锁,后者与前者均提供了可重入锁。

标签:前者,JAVA,Lock,互斥,死锁,详解,线程,开发者,JVM
来源: https://blog.csdn.net/qq_32852017/article/details/117999774