上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 32 下一页
摘要: 一、acquire() 的工作流程 当调用 acquire() 方法时,实际调用的是 AQS 的 acquireSharedInterruptibly(1) 方法。以下是其详细工作流程: // acquire() -> sync.acquireSharedInterruptibly(1),可中断 p 阅读全文
posted @ 2025-03-03 15:03 jock_javaEE 阅读(73) 评论(0) 推荐(0)
摘要: 一、简单使用 在聊它的源码之前,我们先来做个简单的使用说明。当我在IDEA中创建了一个简单的Demo之后,它会给出以下提示 提示文字 在使用阻塞等待获取锁的方式中,必须在try代码块之外,并且在加锁方法与try代码块之间没有任何可能抛出异常的方法调用,避免加锁成功后,在finally中无法解锁。 1 阅读全文
posted @ 2025-03-01 23:38 jock_javaEE 阅读(37) 评论(0) 推荐(0)
摘要: 一、CountDownLatch的构造方法 // 创建倒数闩,设置倒数的总数State的值 CountDownLatch doneSignal = new CountDownLatch(N); 二、countDown() 方法的作用 countDown() 方法的主要作用是将 CountDownLa 阅读全文
posted @ 2025-03-01 21:46 jock_javaEE 阅读(87) 评论(0) 推荐(0)
摘要: 一、定义 release(int) 是 AQS(AbstractQueuedSynchronizer)中的一个核心方法,用于在独占模式下释放同步状态。如果释放成功,则会唤醒等待队列中的后继节点,使其有机会获取同步状态 1、release(int) 方法的作用 功能:释放同步状态(独占模式),并唤醒等 阅读全文
posted @ 2025-02-28 11:38 jock_javaEE 阅读(28) 评论(0) 推荐(0)
摘要: 一、定义 acquire(int arg) 是 AQS(AbstractQueuedSynchronizer)中的一个核心方法,用于在独占模式下获取同步状态。如果当前线程无法获取同步状态,则将其加入等待队列并阻塞,直到成功获取同步状态或被中断 1、acquire(int arg) 方法的作用 功能: 阅读全文
posted @ 2025-02-28 01:24 jock_javaEE 阅读(68) 评论(0) 推荐(0)
摘要: 一、定义 ThreadPoolExecutor 的内部类 Worker 是线程池的核心实现之一,它封装了线程和任务,并负责执行任务。Worker 类继承自 AbstractQueuedSynchronizer(AQS), 并实现了 Runnable 接口。通过 Worker,线程池能够高效地管理线程 阅读全文
posted @ 2025-02-23 01:08 jock_javaEE 阅读(66) 评论(0) 推荐(0)
摘要: 一、详细介绍FutureTask类 FutureTask 未来将要执行的任务对象,继承 Runnable、Future 接口,用于包装 Callable 对象,实现任务的提交 public static void main(String[] args) throws ExecutionExcepti 阅读全文
posted @ 2025-02-22 21:03 jock_javaEE 阅读(101) 评论(0) 推荐(0)
摘要: 一、详细介绍java的线程池状态 Java 中的线程池状态是 ThreadPoolExecutor 类内部管理的一个重要概念。线程池的状态决定了线程池的行为,例如是否接受新任务、是否处理队列中的任务、是否中断正在执行的任务等。 线程池的状态通过一个 AtomicInteger 变量(ctl)来表示, 阅读全文
posted @ 2025-02-22 18:48 jock_javaEE 阅读(195) 评论(0) 推荐(0)
摘要: 一、Condition类的signal()方法底层原理 Condition 接口的 signal 方法是用于唤醒一个在 Condition 上等待的线程。与 Object 的 notify 方法类似,signal 方法会从 Condition 的等待队列中选择一个线程并将其唤醒,使其重新尝试获取锁并 阅读全文
posted @ 2025-02-21 01:48 jock_javaEE 阅读(94) 评论(0) 推荐(0)
摘要: 一、Condition的await()方法底层源码 以下是 ConditionObject 中 await 方法的源码及其详细分析: public final void await() throws InterruptedException { // 判断当前线程是否是中断状态,是就直接给个中断异常 阅读全文
posted @ 2025-02-21 00:34 jock_javaEE 阅读(48) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 32 下一页