
并发编程
文章平均质量分 96
并发编程知识
湘水友独
coding
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
并发编程笔记
线程基本概念 什么是线程 操作系统在运行一个程序的时候,会创建一个进程,在这个进程里可以创建多个线程,CPU给每个线程分配时间片来进行调度执行。 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后切换到下一个任务,每次切换的时候需要保存上一个任务执行的状态,以便下一次切换回来的时候,可以再次加载这个状态。 这个保存和加载的过程称为上下文切换。 线程是操作系统调度的基本单元 单核处理器也是支持多线程执行代码的。 为什么使用多线程 最大化的利用计算机多核处理器 更快的响应时间RT 更好的编程模型原创 2021-05-30 00:06:49 · 292 阅读 · 0 评论 -
深入理解volatile关键字
volatile 是什么 保证线程之间可见性,不保证原子性 禁止指令重排 Java内存模型Java Memory Model,简称 JMM happen-before 规则 内存屏障 四种屏障:LoadLoad,LoadStore,StoreLoad,StoreStore 谁来添加屏障 硬件级别底层语义 lock addl ...原创 2021-02-12 20:33:29 · 222 阅读 · 0 评论 -
深入理解synchronized关键字
概念 是 java 中的一个关键字,作用于对象,多线程并发访问此对象时起到同步互斥的作用,可重入 基本用法 作用在对象 给实例对象加锁 作用在方法 给实例对象加锁 作用在静态方法 给类对象加锁 实现原理 作用在对象上 编译成字节码时会生成2个指令,monitorenter和monitorexist monitorenter标识加锁,monitorexist 标识解锁 加解锁需要一个位置来记录对象的解决锁状态 每个对象有一个对象头,对象头中有2个关键数据 mark word klass pointe原创 2021-02-06 21:45:03 · 247 阅读 · 1 评论 -
CAS实现原理
概念 CAS , Compare And Swap ,顾名思义,比较并交换,整个AQS的同步组件、Atomic原子类操作等都是以CAS实现的。可以说CAS是整个JUC包的基石。 CAS 在CAS中有三个参数:内存值V,旧的预期值A、要更新的值B,当且仅当内存值V的值等于旧的预期值A时才会将内存值V的值修改为B,否则什么都不干。伪代码如下: if(this.value == A){ this.value = B; return true; }else{ return false;原创 2020-10-24 22:09:19 · 379 阅读 · 0 评论