Java多线程
文章平均质量分 96
多线程基础知识、进阶知识以及底层知识
叉烧钵钵鸡
这个作者很懒,什么都没留下…
展开
-
Java多线程七——关键字volatile
Java 中 volatile 关键字是一个类型修饰符,主要作用是使变量在多个线程间可见。JDK 1.5 之后,对其语义进行了增强保证可见性(缓存一致性协议MESI):保证了不同线程对共享变量进行操作时的可见性,即一个线程修改了共享变量的值,共享变量修改后的值对其他线程立即可见;保证有序性(禁止指令重排优化):通过禁止编译器、CPU 指令重排序和部分 happens-before 规则,解决有序性问题,避免了指令重排。不能保证原子性(volatile++非原子性)。原创 2024-10-11 17:32:18 · 961 阅读 · 0 评论 -
Java多线程六——Condition详解
任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上),主要包括 wait()、wait(long timeout)、notify() 以及 notifyAll() 方法,这些方法与 synchronized 同步关键字配合,可以实现。Condition接口也提供了类似Object的监视器方法,与Lock配合可以实现等待/通知模式,但是这两者在使用方式以及功能特性上还是有差别的。——摘自《Java并发编程的艺术》原创 2024-10-10 17:07:29 · 889 阅读 · 0 评论 -
Java多线程五——深入理解AQS实现原理
翻译过来就是抽象队列同步器。AQS是一个用来构建锁和其他同步组件的基础框架,使用AQS可以简单且高效地构造出应用广泛的同步器,例如我们后续会讲到的。原创 2024-07-16 14:52:38 · 869 阅读 · 0 评论 -
Java多线程四——synchronized原理
从c++源码层面详细分析 synchronized 的底层原理原创 2024-06-27 10:30:18 · 1210 阅读 · 0 评论 -
Java多线程三——偏向锁/轻量级锁/重量级锁详解
详细介绍了偏向锁/轻量级锁/重量级锁的加锁和解锁过程,以及偏向锁——>轻量级锁——>重量级锁的锁膨胀过程原创 2024-06-26 17:30:44 · 1404 阅读 · 0 评论 -
Java多线程二——Java锁分类
基于Java程序实现的一种。原创 2024-06-21 22:12:28 · 845 阅读 · 0 评论 -
Java多线程一——Java多线程基础知识
进程:系统调度分配资源的最小或基本单位。系统内核中 进程 就是一段记录专有资源和状态的 task_struct 结构体,就是一个数据结构或者理解为一个存储资源信息的对象。其存储的信息主要包括:这个 task_struct 结构体有个专门的名字:PCB --> PROCESS control block,也叫进程控制块。PCB 数据保存在操作系统4G内存虚拟地址中的内核态中,也就是 3-4G 内存这一段内,显然用户态时是无法访问的,想要访问就必须从用户态切换到内核态。线程:进程的执行单元,是CPU调度和分派的原创 2024-06-21 16:49:30 · 922 阅读 · 0 评论