摘要: 偏向锁/轻量级锁/重量级锁:这三种锁是指Synchronized的锁状态 偏向锁:是指一段同步代码,只有一个单线程所访问,那么该线程会自动获取锁;降低获取锁的代价 轻量级锁:是指当前锁处于偏向锁状态的时候,被多个线程所访问,偏向锁就会升级为轻量级锁,但只有一个线程能获得锁用使用权,其他线程会通过自旋 阅读全文
posted @ 2021-05-15 01:12 jock_javaEE 阅读(321) 评论(0) 推荐(0)
摘要: 可重入锁又名递归锁:是指在同一个线程在外层方法获取锁的时候,在进入内层加锁方法上也会自动获取锁 比如:ReentrantLock、Synchronized都是可重入锁,可重入锁的一个好处是可一定程度避免死锁 阅读全文
posted @ 2021-05-15 00:55 jock_javaEE 阅读(93) 评论(0) 推荐(0)
摘要: 独享锁/共享锁是一种广义的说法,互斥锁/读写锁就是具体的实现 互斥锁:ReentrantLock 读写锁:读写锁在Java中的具体实现就是ReentrantReadWriteLock 阅读全文
posted @ 2021-05-15 00:52 jock_javaEE 阅读(59) 评论(0) 推荐(0)
摘要: 独享锁:是指该锁一次只能被一个线程所持有 比如:ReentrantLock、Synchronized都是独享锁 共享锁:是指该锁可被多个线程所持有 读锁的共享锁可保证并发读是非常高效的,读写,写读 ,写写的过程是互斥的。独享锁与共享锁也是通过AQS来实现的, 通过实现不同的方法,来实现独享或者共享 阅读全文
posted @ 2021-05-15 00:49 jock_javaEE 阅读(111) 评论(0) 推荐(0)
摘要: 公平锁:是指多个线程按照申请锁的顺序来获取锁 非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象 比如:ReentrantLock、Synchronized都非公平锁 阅读全文
posted @ 2021-05-15 00:41 jock_javaEE 阅读(53) 评论(0) 推荐(0)