摘要: import lombok.SneakyThrows; import java.text.SimpleDateFormat; import java.util.concurrent.*; public class T { @SneakyThrows public static void main(S 阅读全文
posted @ 2024-08-15 16:44 干饭达人GoodLucy 阅读(8) 评论(0) 推荐(0) 编辑
摘要: import lombok.SneakyThrows; import java.util.Date; import java.util.concurrent.*; /* main上锁3 线程1获得锁 线程2获得锁 线程3获得锁 线程1释放锁2 线程2释放锁1 线程3释放锁0 main解锁0 * */ 阅读全文
posted @ 2024-08-15 15:35 干饭达人GoodLucy 阅读(4) 评论(0) 推荐(0) 编辑
摘要: fixed single cached import java.util.concurrent.*; public class T { public static void main(String[] args) { ExecutorService threadPool = getFixedThre 阅读全文
posted @ 2024-08-15 15:13 干饭达人GoodLucy 阅读(1) 评论(0) 推荐(0) 编辑
摘要: jdk自带命令行工具:jsp + jstack -l pid jdk自带可视化工具:jvisualvm jdk自带可视化工具:jconsole public class T { public static void main(String[] args) throws InterruptedExce 阅读全文
posted @ 2024-08-15 11:03 干饭达人GoodLucy 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 多条件变量 import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; /* 多条件变量 **/ 阅读全文
posted @ 2024-08-15 10:03 干饭达人GoodLucy 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 共享变量+volitale 保证线程间的可见性 禁止指令重排 /* 一、boolean flag运行结果: 线程1 flag=false 【一直阻塞】 二、volatile boolean flag运行结果: 线程2 循环次数=71585922 线程2 over 线程1 flag=false **/ 阅读全文
posted @ 2024-08-14 15:25 干饭达人GoodLucy 阅读(19) 评论(0) 推荐(0) 编辑
摘要: synchronize入门 /* 抢票场景 **/ public class T { private int ticktNum = 10; // @SneakyThrows public void getTickt() throws Exception { synchronized (T.class 阅读全文
posted @ 2024-08-14 14:57 干饭达人GoodLucy 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 退出标志 import lombok.SneakyThrows; import java.text.SimpleDateFormat; public class T { static boolean flag = true; @SneakyThrows public static void main 阅读全文
posted @ 2024-08-14 12:13 干饭达人GoodLucy 阅读(4) 评论(0) 推荐(0) 编辑
摘要: wait(timeout) 释放对象锁 import lombok.SneakyThrows; /* 线程1进入等待状态 线程2 hello 线程1 over **/ public class T { @SneakyThrows public static void main(String[] ar 阅读全文
posted @ 2024-08-14 11:32 干饭达人GoodLucy 阅读(3) 评论(0) 推荐(0) 编辑
摘要: notify() vs notifyAll() import lombok.SneakyThrows; import java.util.concurrent.TimeUnit; public class T { @SneakyThrows public static void main(Strin 阅读全文
posted @ 2024-08-14 11:24 干饭达人GoodLucy 阅读(4) 评论(0) 推荐(0) 编辑