java锁

https://www.cnblogs.com/lxmyhappy/p/7380073.html

悲观锁(读少写多的场景),乐观锁(读多写少的场景,这样可以提高系统的并发量)

可重入锁:又叫递归锁,是指在同一个线程在调用外层方法获取锁的时候,再进入内层方法会自动获取锁,(可避免死锁)

synchronized void setA() throws Exception{
    Thread.sleep(1000);
    setB();
}

synchronized void setB() throws Exception{
    Thread.sleep(1000);
}
自旋锁:一直循环,直到获取锁
独享锁(ReentrantLock,Synchronized独享锁),共享锁(
ReentrantReadWriteLock,其读锁是共享锁,写锁是独享锁
互斥锁(
ReentrantLock具体实现)和读写锁(ReentrantReadWriteLock
分段锁:例如ConcurrentHashMap (分段锁的设计目的是细化锁的粒度,当操作不需要更新整个数组的时候,就仅仅针对数组中的一项进行加锁操作。)
偏向锁(是指一段同步代码一直被一个线程所访问,那么该线程会自动获取锁。降低获取锁的代价。),轻量级锁,重量级锁
 


 

posted @ 2020-10-21 09:36  hulifang  阅读(62)  评论(0编辑  收藏  举报