首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JUC编程
辜月十
创建于2023-02-21
订阅专栏
JUC笔记
暂无订阅
共23篇文章
创建于2023-02-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
CompletableFuture 异步编排
CompletableFuture 异步编排、案例及应用小案例 前言 今天的话,就来以一个应用场景来进行一步一步的推导,在实现案例的过程中,将CompletableFuture相关的知识点逐步讲述明白
ThreadLocal
基本篇 什么是ThreadLocal? ThreadLocal英文翻译过来就是:线程本地量,它其实是一种线程的隔离机制,保障了多线程环境下对于共享变量访问的安全性。 看到上面的定义之后,那么问题就来了
AQS
AQS 简介 AQS的全称是:AbstractQueuedSynchronizer,翻译过来的意思就是抽象队列同步器,这个类在 java.util.concurrent.locks 包下面。实则是一个
Java定时调度机制-Timer&ScheduledExecutorService
Timer 简介 在实现定时调度功能的时候,我们往往会借助于第三方类库来完成,比如:quartz、Spring Schedule、Xxx Jol等等。JDK从1.3版本开始,就提供了基于Timer的定
JDK线程池
1. Java线程池 线程池是一种多线程处理形式,处理过程中可以将任务(Runnable、Callable)添加到队列中,然后在创建线程后自动启动这些任务。 1.1. 线程池的特点 使用线程池可以根据
Callable、Future、FutureTask
一、Callable 接口 1、概述: 我们以前使用实现Runnable接口的方式来创建线程,但是Runnable的run()存在一个缺陷问题,就是不能将执行完的结果返回。Java就是为了能够实现这个
自定义线程池
```java // 拒绝策略 @FunctionalInterface interface RejectPolicy { void reject(BlockingQueue queue, T tas
JUC原子类
一、Java中的13个原子操作类 在多线程环境下执行i++这个操作,并不能保证变量i的线程安全性。因为i++其实不是一个原子操作,i++是由以下3个步骤组成的: (1)取出变量i的值。 (2)执行累加
JMM
JMM JVM 与 JMM 区别? JVM内存结构和Java虚拟机的运行时区域相关,定义了JVM在运行时如何分区存储程序数据,就比如说堆主要用于存放对象实例。 JMM内存模型和Java的并发编程相关,
CAS
什么是CAS? 在这个机制中有三个核心的参数: 主内存中存放的共享变量的值:V(一般情况下这个V是内存的地址值,通过这个地址可以获得内存中的值) 工作内存中共享变量的副本值,也叫预期值:A 需要将共享
ReentrantLock
ReentrantLock简介 基本语法 可重入 可重入是指同一个线程如果首次获得了这把锁,那么因为它是这把锁的拥有者,因此有权利再次获取这把锁如果是不可重入锁,那么第二次获得锁时,自己也会被锁挡住。
死锁
死锁案例 哲学家就餐 有五位哲学家,围坐在圆桌旁。 他们只做两件事,思考和吃饭,思考一会吃口饭,吃完饭后接着思考。 吃饭时要用两根筷子吃,桌上共有 5 根筷子,每位哲学家左右手边各有一根筷子。 如果筷
线程状态转换
NEW --> RUNNABLE RUNNABLE <--> WAITING 3 RUNNABLE <--> WAITING 4 RUNNABLE <--> WAITING 5 RUNNABLE <-
同步模式之保护性暂停
定义 实现 Park Unpark 与Object的wait和notify相比 wait & notify & notifyAll必须配合synchronized一起使用,而unpark则不需要。 p
wait/notify
为什么需要wait/notify? wait/notify原理 Monitor(管程)的结构,其中有一块叫做WaitSet的区域,里面存放的是状态为WAITING状态的线程。如下图虚线框中的内容: 涉
Synchronized原理--偏向锁
偏向锁 轻量锁在没有竞争时(就自己的这个线程),每次重入仍然需要执行CAS操作。Java 6中引入了偏向锁来做进一步优化:只有第一次使用CAS将线程ID设置到对象的Mark Word头,之后发现这个线
Synchronized原理--轻量级锁
轻量级锁 轻量级锁流程: 在代码即将进入method1方法同步块的时候,如果此同步对象没有被锁定,虚拟机首先将当前线程的栈帧中建立一个名为Lock Record(锁记录)的空间,用于存储锁对象目前的M
synchronized原理--重量级锁
重量级锁 Monitor Monitor对象内存结构 WaitSet:是线程等待队列。状态为WAITING EntryList:线程阻塞队列.状态为BLOCKED Owner:正在执行的线程(可能很多
Synchronized原理
问题分析:以上的结果可能是正数,负数,0的原因在于Java中对静态变量的自增自减并不是原子性操作,如果要彻底理解,必须从字节码来进行分析 例如对于i++而言(i为静态变量),实际产生的JVM字节码指令
Java对象结构
对象结构 Java 对象(Object 实例)结构包括三部分:对象头、对象体、对齐字节。 Java 对象(Object 实例)的三个部分 对象头 对象头包括三个字段,第一个字段叫做 Mark Word
下一页