![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
[纳川]
日拱一卒无有尽,功不唐捐终入海
展开
-
ThreadLocal和TransmittableThreadLocal
如果使用线程池复用线程,那么threadLocal 取完值后,需要清理,否则取值会发生错乱,取到之前的存值;threadLocal 存的其实是一个弱引用map,key为当前线程对象,value set进去的值,如果线程复用,key相同,可能会导致写入覆盖或者导出重复。可以实现父子线程之间变量传递,同时可以实现线程池复用时,可以正确取值,不会发生错乱。原创 2023-04-24 17:49:46 · 175 阅读 · 0 评论 -
Java线程常用数据容器线程安全测试
【代码】Java线程常用数据容器线程安全测试。原创 2023-04-24 13:46:33 · 108 阅读 · 0 评论 -
cyclicBarrier和CountDownLatch测试并发demo
CyclicBarrier 可执行多次,需要注意每次需要凑够队列数才执行,不够不执行。CountDownLatch 只能执行一次。原创 2023-04-17 19:42:31 · 190 阅读 · 1 评论 -
CountDownLatch模拟并发测试
CountDownLatch模拟并发测试原创 2022-12-05 18:43:03 · 332 阅读 · 0 评论 -
锁与保护资源的关系
当修饰静态方法的时候,锁定的是当前类的 Class 对象,在上面的例子中就是 Class X;当修饰非静态方法的时候,锁定的是当前实例对象 this。原创 2022-10-18 16:26:10 · 71 阅读 · 0 评论 -
多线程并发测试
多线程并发安全测试原创 2022-06-22 09:24:51 · 268 阅读 · 0 评论 -
实现线程池自定义拒绝策略
@GetMapping("better")public int better() throws InterruptedException { //这里开始是激进线程池的实现 BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>(10) { @Override public boolean offer(Runnable e) { //.原创 2021-07-26 14:34:25 · 389 阅读 · 0 评论 -
自定义线程拒绝策略
private static final ExecutorService commissionPool = new ThreadPoolExecutor( //核心线程数(初始试0,每submit一个任务创建一个) 6, //最大线程 12, //存活时间 0, TimeUnit.SECONDS, //最大工作队列 .原创 2021-06-23 00:01:16 · 205 阅读 · 0 评论