logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Future和CompletableFuture详解

Future:表示一个异步计算的结果,提供了检查计算是否完成、等待计算完成、获取计算结果的方法。核心思想同步调用:main线程 ──────→ 调用方法 ──────→ 等待返回 ──────→ 继续执行|_____耗时操作_____|异步调用(Future):main线程 ──────→ 提交任务 ──────→ 继续执行其他逻辑 ──────→ get()获取结果↓工作线程执行任务(异步)//

park和unpark机制详解

是用来创建锁和其他同步类的线程原语位置作用🔧 提供更灵活的线程阻塞和唤醒机制🔧 是构建其他并发工具的基础(如AQS)🔧 比wait/notify更强大和易用// 尝试获取锁if (!// 获取失败,park等待// 唤醒所有等待的线程(实际应该维护等待队列)// 这里简化处理特性说明无需synchronized可以在任何地方调用精确唤醒unpark(thread)精确唤醒指定线程。

#java#开发语言
park和unpark机制详解

是用来创建锁和其他同步类的线程原语位置作用🔧 提供更灵活的线程阻塞和唤醒机制🔧 是构建其他并发工具的基础(如AQS)🔧 比wait/notify更强大和易用// 尝试获取锁if (!// 获取失败,park等待// 唤醒所有等待的线程(实际应该维护等待队列)// 这里简化处理特性说明无需synchronized可以在任何地方调用精确唤醒unpark(thread)精确唤醒指定线程。

#java#开发语言
wait和notify机制详解

方法作用注意事项wait()释放锁并等待必须在synchronized块中notify()唤醒一个等待的线程不立即释放锁唤醒所有等待的线程更安全,推荐使用。

Java创建线程的三种方式

/ 定义线程类@Override// 线程要执行的任务i < 100;i++) {" 执行:" + i);// 使用线程// 创建线程对象// 启动线程(注意:必须调用start(),不是run())t1.start();t2.start();// 主线程继续执行i < 100;i++) {System.out.println("main线程执行:" + i);

#java#开发语言
设计模式学习笔记-----抽象责任链模式

该文介绍了一种基于Spring的抽象责任链模式实现方案,由5个核心组件构成:上下文(AbstractChainContext)作为调度中心,处理器容器(abstractChainHandlerContainer)按业务分组管理处理器,处理器抽象接口(AbstractChainHandler)定义规范,业务专属接口(UserRegisterCreateFilter)固化业务分组,以及具体处理器实现业

#设计模式#学习#java +1
JUC学习笔记-----ReentrantLock

ReentrantLock原理分析:本文详细解析了Java中ReentrantLock的实现机制。1)非公平锁实现:通过CAS操作竞争锁,失败后进入AQS队列自旋等待,包括加锁失败流程、解锁竞争流程和可重入原理;2)公平锁实现:在获取锁前会检查等待队列;3)条件变量实现:通过ConditionObject维护等待队列,实现await/signal机制。文章还分析了可打断与不可打断模式的区别,以及线

#学习#java#后端
到底了