随笔分类 -  JAVA - JUC

摘要:Semaphore Semaphore 更加适合用于控制对有限资源的访问,特别是当你需要允许一定数量的线程同时访问资源时 CountDownLatch 更加适合用于协调多个线程的完成状态,确保在某些操作完成后再执行后续操作 它用于控制对共享资源的访问,通过维护一个许可的计数器来限制同时访问某个资源的 阅读全文
posted @ 2024-10-11 12:51 CyrusHuang 阅读(13) 评论(0) 推荐(0) 编辑
摘要:CyclicBarrier 和 CountDownLatch 有点类似,主要区别是 CyclicBarrier 可以重用,常用方法如下: CyclicBarrier barrier = new CyclicBarrier(3); // 表示条件为:要有 3 个线程达到屏障(未指定屏障动作) barr 阅读全文
posted @ 2024-10-11 12:51 CyrusHuang 阅读(16) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch Semaphore 更加适合用于控制对有限资源的访问,特别是当你需要允许一定数量的线程同时访问资源时 CountDownLatch 更加适合用于协调多个线程的完成状态,确保在某些操作完成后再执行后续操作 它用于协调多个线程的执行,使得某些操作必须等到其他操作完成后才能继 阅读全文
posted @ 2024-10-11 12:50 CyrusHuang 阅读(9) 评论(0) 推荐(0) 编辑
摘要:占坑 阅读全文
posted @ 2023-07-12 10:38 CyrusHuang 阅读(5) 评论(0) 推荐(0) 编辑
摘要:占坑 阅读全文
posted @ 2023-07-12 10:02 CyrusHuang 阅读(8) 评论(0) 推荐(0) 编辑
摘要:占坑 阅读全文
posted @ 2023-05-28 18:56 CyrusHuang 阅读(28) 评论(0) 推荐(0) 编辑
摘要:工作流程 提交任务时,如果线程池当前线程数量小于核心线程数时,直接创建线程来处理任务(线程池初始不会创建线程,当有任务提交才创建) 当线程池线程数量达到核心线程数,任务进入队列 当队列满了不能继续放时,再次创建线程来处理任务 这时的线程叫救急线程 当救急线程处理完任务空闲时,达到存活时间后会销毁救急 阅读全文
posted @ 2023-05-24 16:57 CyrusHuang 阅读(14) 评论(0) 推荐(0) 编辑
摘要:创建线程方式 继承 Thread 实现 Runnable 实现 Callable,线程也能有返回值,必须搭配线程池或 FutureTask 使用 Callable 示例 FutureTask<Integer> futureTask = new FutureTask<>(() -> 123); new 阅读全文
posted @ 2023-05-24 16:56 CyrusHuang 阅读(36) 评论(0) 推荐(0) 编辑
摘要:占坑 阅读全文
posted @ 2023-05-24 16:53 CyrusHuang 阅读(149) 评论(0) 推荐(0) 编辑
摘要:比 读写锁效率更高 阅读全文
posted @ 2023-05-24 16:45 CyrusHuang 阅读(30) 评论(0) 推荐(0) 编辑
摘要:产生背景 已经有了 ReentrantLock ,为什么还来一个 ReentrantReadWriteLock? ReentrantLock 是独占锁,哪怕所有线程都是读操作,其实不用加锁,但是 ReentrantLock 一次还是只能让一个线程获取,ReentrantReadWriteLock 就 阅读全文
posted @ 2023-05-24 16:11 CyrusHuang 阅读(48) 评论(0) 推荐(0) 编辑
摘要:类结构 public class ReentrantLock implements Lock, java.io.Serializable { // 有个 Sync 的属性(是内部类 Sync,就是 AQS) private final Sync sync; // Sync 继承 AQS abstra 阅读全文
posted @ 2023-05-24 16:05 CyrusHuang 阅读(19) 评论(0) 推荐(0) 编辑
摘要:属性 public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable { // 头节点 private transient vol 阅读全文
posted @ 2023-05-24 16:02 CyrusHuang 阅读(17) 评论(0) 推荐(0) 编辑
摘要:线程等待和唤醒三种方式 方式 等待 唤醒 描述 Object wait notity/notifyAll 必须用在 synchronized 里,需要先等待再唤醒 Condition await singal 必须用在 Lock 块中,需要先等待再唤醒 LockSupport park unpark 阅读全文
posted @ 2023-05-24 15:59 CyrusHuang 阅读(22) 评论(0) 推荐(0) 编辑
摘要:占坑 阅读全文
posted @ 2023-05-24 15:57 CyrusHuang 阅读(17) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示