01蚂蚁-并发编程——并发编程线程池原理——7.1锁的深入化

锁的深入

  1. 什么是重入锁
  2. 锁的种类
    • 读写锁
    • 悲观和乐观
    • CAS无锁
    • 自旋锁
    • AQS
    • 非公平锁
    • 公平锁
    • 互斥锁
    • 排他锁
    • 分布式锁:redis实现分布式锁。Zookeeper实现分布式锁

轻量级锁(Lock)与重量级锁(Synchronized)–可重入性(递归锁)

可重入锁就是可以循环的递归的获取到改锁

1.ReentrantLock(可重入锁)该代码不会报错

package day07;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
//演示lock锁是否具备可重入性 特征,锁可以传递(方法递归进行传递)
public class Test0002  extends Thread{

    Lock lock = new ReentrantLock();

    @Override
    public void run() {
        set();
    }
    //synchronized 是什么时候释放锁?避免死锁
    public void set(){
        try {
            lock.lock();
            System.out.println("set 方法");
            get();
        }catch (Exception e){
        }finally {
            lock.unlock();
        }
    }
    public void get(){
        try {
          

你可能感兴趣的:(01蚂蚁-并发编程——并发编程线程池原理——7.1锁的深入化)