首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java 并发编程
热爱可抵漫长岁月
创建于2022-02-08
订阅专栏
Java 并发编程相关的一些知识
等 4 人订阅
共11篇文章
创建于2022-02-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
JUC 死锁
1、死锁的概念 1.1 什么是死锁 (1)发生在并发中 死锁一定发生在并发场景中。我们为了保证线程安全,有时会给程序使用各种能保证并发安全的工具,尤其是锁,但是如果在使用过程中处理不得当,就有可能会导
JUC AQS(抽象队列同步器)
1、什么是 AQS AQS 的重要性 可以先看看 AQS 应用在了哪些地方,虽然我们从未直接的去使用过它: 如图所示,AQS 在 ReentrantLock、ReentrantReadWriteLoc
JUC Java 内存模型
1、什么是 Java 内存模型? Java 内存结构 VS Java 内存模型 Java 内存结构和 Java 虚拟机的运行时区域有关; Java 内存模型和 Java 的并发编程有关。 简单介绍一下
JUC ThreadLocal
1、使用场景 场景 1 这种场景通常用于保存线程不安全的工具类,典型的需要使用的类就是 SimpleDateFormat。 每个 Thread 内都有自己的实例副本,且该副本只能由当前 Thread
JUC 阻塞队列
1、关系图 BlockingQueue 下面有 6 种最主要的实现,分别是 ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、DelayQ
JUC 并发容器
1、HahMap 线程不安全 数据丢失问题 先看源码: 假如两个线程同时进入 if ((p = tab[i = (n - 1) & hash]) == null) 这一行,假设对应的位置为 null。
JUC 锁
1、锁的 7 大分类 偏向锁/轻量级锁/重量级锁 这三种锁特指 synchronized 锁的状态,通过在对象头中的 mark word 来表明锁的状态。 偏向锁 如果这把锁一直都没有竞争,就没必要上
JUC 线程池
使用线程池好在哪里? 为什么要使用线程池 假如我们不适用线程池的话,我们执行一个任务就要创建一个线程,执行 1000 个任务就要创建 1000 个线程。 出现的问题: 第一点:反复创建销毁线程系统开销
JUC 线程安全问题和性能问题
线程安全问题 运行结果问题 先看一段代码: 代码逻辑:对 temp 变量初始化为 0,启动两个线程,每个线程都让 temp 自增 1000,结果应该为 20000。 当你实际运行这段代码你会发现,啥结
JUC 创建线程的四种方式与分析
第一种:实现 Runnable 接口 Runnable 源码为: 因为 Runnable 是函数式接口,所以可以使用 Lambda 表达式简化: 第二种:继承 Thread 类 第三种:实现 Call
JUC 生产者消费者模式三种方式实现
BlockingQueue 方式 思路 核心就是通过一个阻塞队列来缓冲。 生产者将生产的产品放入阻塞队列中即可,如果阻塞队列满了,则等阻塞队列有空位了再将产品放入。 消费者从阻塞队列中消费产品,如果阻