首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java并发编程
goAhead
创建于2021-08-04
订阅专栏
JUC并发包中的知识
等 5 人订阅
共21篇文章
创建于2021-08-04
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
线程池源码撸完,面试还怕被问线程池
线程池状态 线程池状态转换如下图所示 首先创建出线程池,并且没有调用shutdown方法之前,线程池就处于正常的运行状态,即RUNNING。处于RUNNING状态的线程池,你提交的任务(调用submi
FutureTask源码
前言 大家好,我是努力更文的小白。今天我们一起来看看FutureTask源码,说实话,看源码是一个非常枯燥的事情~ 成员属性 属性如下: state:表示当前task任务状态。 outcome:正常情
简单说说ConcurrentSkipListMap
基本介绍 跳跃表的性质如下: 最底层的数据节点按照关键字key升序排列 包含多级索引,每个级别的索引节点按照其关联的数据节点的关键字key升序排列 高级别索引是其低级别索引的子集。 如果关键字key在
JDK1.8并发容器ConcurrentHashMap
基本介绍 ConcurrentHashMap的结构原理图如下,大部分还是跟HashMap的结构类似,TreeBin节点是对于已经树化的红黑树节点的代理节点,FWD节点为标识扩容桶位,它指向扩容之后的n
LongAdder源码分析
基本介绍 LongAdder跟AtomicLong都是用于计数器统计的,AtomicLong底层通过CAS操作进行计数,但是在高并发条件下性能比较低。 阿里的开发手册上明确说明: LongAdder的
第二章:线程基础知识复习
口诀: 高内聚低耦合前提下,封装思想,即线程操作资源类 判断、干活、通知 防止虚假唤醒,wait方法要注意使用while判断 注意标志位flag,可能是volatile的 面试题:为什么多线程极其重要
第三章:CompletableFuture
Future和Callable接口 Future接口定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。 Callable接口中定义了
第九章:原子操作类之18罗汉增强
基本介绍 基本类型原子类 基本类型的原子类有三个如下: 常用API如下: 简单例子如下: 上述代码执行结果为什么不是50*1000?因为50个线程还没有执行完,Main线程就要获取结果,所以结果不正确
第八章:CAS
在没有CAS之前,多线程环境不使用原子类保证线程安全(基本数据类型),代码演示如下: 多线程环境 使用原子类保证线程安全(基本数据类型),代码演示如下: CAS基本介绍 CAS(compare and
第七章:volatile与Java内存模型
volatile特点 volatile的两大特点是可见性和有序性; volatile的内存语义: 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值立即刷新回主内存中。 当读
第六章:Java内存模型之JMM
计算机硬件存储体系 计算机存储结构,从本地磁盘到主存到CPU缓存,也就是从硬盘到内存,到CPU。一般对应的程序的操作就是从数据库查数据到内存然后到CPU进行计算。 因为有这么多级的缓存(cpu和物理主
第五章:线程中断机制
什么是中断? 首先一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop, Thread.suspend,Thread.resume 都已经被废弃了。 其次
ThreadLocal面试问题
说明:本文抄自微信公众号大神:安琪拉的博客 文章地址:https://mp.weixin.qq.com/s/JUb2GR4CmokO0SklFeNmwg 面试官:那你跟我讲讲 ThreadLocal
第十章:聊聊ThreadLocal
基本介绍 恶心的大厂面试题 ThreadLocal中ThreadLocalMap的数据结构和关系? ThreadLocal的key是弱引用,这是为什么? ThreadLocal内存泄露问题你知道吗?
第四章:说说Java“锁”事
大厂面试题复盘如下: 乐观锁和悲观锁 悲观锁: 认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。synchronized关键字和Lock的实
第十一章:Java对象内存布局和对象头
先从阿里及其它大厂面试题说起 Object object = new Object()谈谈你对这句话的理解? 一般而言JDK8按照默认情况下,new一个对象占多少内存空间? 对象在堆内存中布局 在周志
LockSupport
LockSupport LockSupport简介 LockSupport是用来创建锁和其他同步类的基本线程阻塞原语,官网对于该类的解释如下图所示,LockSupport中的park()和unpark
第十二章:Synchronized与锁升级
先从阿里及其它大厂面试题说起 谈谈你对Synchronized的理解 Synchronized的锁升级你聊聊 Synchronized的性能是不是一定弱于Lock synchronized 锁优化的背
第十四章:ReentrantLock、ReentrantReadWriteLock、StampedLock讲解
本章路线总纲:无锁→独占锁→读写锁→邮戳锁。关于锁的大厂面试题如下: 你知道Java里面有哪些锁? 你说你用过读写锁,锁饥饿问题是什么? 有没有比读写锁更快的锁? StampedLock知道吗?(邮戳
第十三章:AbstractQueuedSynchronizer之AQS
先从阿里及其它大厂面试题说起 基本介绍 AQS在字面意思是抽象的队列同步器,是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO队列来完成资源获取线程的排队工作,并
下一页