文章分类 -  JUC文章笔记

摘要:并发工具包-JUC 1. AQS原理 1.1 概述 AQS全称是AbstractQueuedSynchronizer,是阻塞式锁和相关同步器工具的框架(抽象队列同步器) AQS通俗的讲就是给你提供一些方法,让你自己自由的实现自定义锁,其核心就是维持锁的状态和阻塞队列 特点: 用state属性来表示资 阅读全文
posted @ 2024-08-26 20:39 LilyFlower 阅读(27) 评论(0) 推荐(0) 编辑
摘要:共享模型之工具 1. 自定义线程池 我们在了解JDK更完善的线程池之前,我们自己先写一个线程池。我们首先分析一下一个线程池的基本设计图: 首先模拟阻塞队列的实现: // 定义一个阻塞队列 class BlockingQueue<T> { // 任务队列 -- 使用双向链表实现 private Lin 阅读全文
posted @ 2024-08-04 12:51 LilyFlower 阅读(13) 评论(0) 推荐(0) 编辑
摘要:共享模型之无锁 本章内容 CAS 与 volatile 原子整数 原子引用 原子累加器 Unsafe 1. 问题提出 有如下需求,保证 account.withdraw 取款方法的线程安全 package org.example.a33; public class AccountTest{ publ 阅读全文
posted @ 2024-07-25 17:06 LilyFlower 阅读(5) 评论(0) 推荐(0) 编辑
摘要:Java 线程 1. 创建和运行线程 1.1 直接使用 Thread 例如: public class ThreadTest { public static void main(String[] args) { Thread t = new Thread() { public void run(){ 阅读全文
posted @ 2024-07-25 17:03 LilyFlower 阅读(5) 评论(0) 推荐(0) 编辑
摘要:Java 内存模型 JMM 1. JMM 的简单概述 JMM 关注的问题是多线程并发访问的原子性,有序性,可见性,原子性再上一章已经重点讲过了,本章重点关注有序性和可见性 JMM即 Java Memory Model, 从Java 的层面定义了主存和工作内存的抽象概念,底层对应着CPU寄存器,缓存, 阅读全文
posted @ 2024-07-18 16:53 LilyFlower 阅读(10) 评论(0) 推荐(0) 编辑
摘要:共享模型之管道 1. 共享问题 1.1 Java代码的体现 两个线程对初始值为0的静态变量一个做自增,一个做自减,各做5000次,结果会是0吗? package com.cherry; public class Application1 { static int counter = 0; publi 阅读全文
posted @ 2024-07-18 10:28 LilyFlower 阅读(9) 评论(0) 推荐(0) 编辑

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