锁
618GLOAL_COOK2237
未来由你选择!
展开
-
AQS自定义不可重入锁
package cn.itcast.n8;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import sta..原创 2021-07-01 11:24:00 · 122 阅读 · 0 评论 -
简单死锁演示
package com.yuan1.day1;/** * @author QLBF * @version 1.0 * @date 2021/6/16 21:15 */class A{}class B{}public class test5 { static A a=new A(); static B b=new B(); public static void main(String[] args) throws InterruptedException {原创 2021-06-16 21:25:03 · 114 阅读 · 0 评论 -
死锁、jps -l、jstack
死锁的例子:package com.suo8;/** * @author QLBF * @version 1.0 * @date 2021/5/23 16:40 *///口红class Lipstick{}//镜子class Mirror{}class Makeup extends Thread{ //需要的资源只有一份,用static实现,不加模拟不了死锁 static Lipstick lipstick=new Lipstick(); static .原创 2021-05-23 17:06:36 · 166 阅读 · 0 评论 -
ABA问题
CAS会引起ABA问题:package com.cas;import java.util.concurrent.atomic.AtomicInteger;/** * @author QLBF * @version 1.0 * @date 2021/5/23 10:41 */public class CASdemo2 { public static void main(String[] args) { AtomicInteger atomicInteger=new原创 2021-05-23 16:10:30 · 80 阅读 · 0 评论 -
自旋锁
用了AtomicReference原子引用和CASpackage com.suo8;import java.sql.Time;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicReference;/** * @author QLBF * @version 1.0 * @date 2021/5/23 15:22 */class SpinlockDemo{ AtomicRef原创 2021-05-23 15:58:18 · 95 阅读 · 0 评论 -
乐观锁
乐观锁有版本号、CAS两种实现方式。1.下面演示原子引用解决CAS带来的ABA问题,其实使用了乐观锁的版本号的思想:package com.cas;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicStampedReference;/** * @author QLBF * @version 1.0 * @date 2021/5/23 11:27 */public class A原创 2021-05-23 11:54:45 · 85 阅读 · 0 评论