自旋锁/互斥锁/可重入锁/悲观锁
自旋锁/互斥锁/可重入锁/悲观锁
发布时间:2025-02-19 16:35:47
自旋锁/互斥锁/可重入锁/悲观锁
1、什么是自旋锁?
自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时 才能进入临界区。如下
2、什么是互斥锁?
指的是一次最多只能有一个线程持有的锁。我们通常使用synchronized机制控制多个线程对共享资源Lock接口及其实现类ReentrantLock
3、什么是可重入锁?
可重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。
在JAVA环境下 ReentrantLock 和synchronized 都是 可重入锁。
4、什么是悲观锁?
悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁。每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。