欢迎来到Zgxh的博客
  关于我
DUT CS 19级研究生,技术学习ing...
内存模型 JMM 内存模型 JMM
6. Java 内存模型6.1 并发模型线程间进行通信和同步,可以通过 2 种方式的并发模型来实现: 消息传递并发模型 共享内存并发模型 Java 中,采用的是第二种:共享内存并发模型 6.2 JVM 运行时数据区 方法区 和 堆,
7.指令重排 与 happens-before 7.指令重排 与 happens-before
7. 指令重排 与 happens-before指令重排可以在 CPU 闲置(等待变量装载等)时,先执行其他指令,提高性能。分为: 编译器优化重排:编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。 指令并行重排:现代处理
8.volatile 关键字 8.volatile 关键字
8. volatile8.0 为什么存在内存可见性问题 -> 缓存一致性问题可见性是指某线程修改了一个变量的值,新值对于其他线程是立即可见的。 为了提高代码执行速度,CPU 先把资源从内存加载到 CPU 缓存中(L1, L2等),但操
AQS AQS
11. AQSAQS,AbstractQueuedSynchronizer,抽象队列同步器,是一个抽象类。 是用来构建锁和同步器的框架。基于 AQS 实现的锁: ReentrantLock ReentrantReadWriteLock C
进程与线程 进程与线程
0. 进程与线程进程是应用程序在某块独立内存上的运行活动,是系统进行资源分配的基本单位。各个进程之间互不干扰,包括程序段、数据、PCB。 程序段:程序运行的代码; 数据段:程序运行期的相关数据; PCB 进程控制块:描述进程的基本情况和运
1.Java 中多线程的实现 1.Java 中多线程的实现
1. Java 中多线程的实现主要有三种方案: 继承 Thread 类,并重写 run() 方法 实现 Runnable 接口,并重写 run() 方法 实现 Callable 接口,并重写 call() 方法 其中前两种比较常见。 1
10.CAS 与 原子操作 10.CAS 与 原子操作
10. CAS 与 原子操作10.1 原子性原子操作就是最小的不可拆分的操作,操作一旦开始,就不能被打断,直到操作完成。 要么全部成功,要么全部失败。 原子操作能保证线程安全性。 10.1.1 Java 中的原子类java.util.c
ReentrantLock 与 synchronized ReentrantLock 与 synchronized
ReentrantLock 与 synchronized1. synchronized 与 ReentrantLock 的对比synchronized 与 ReentrantLock 都具备线程重入性,但 synchronized 由 JV
2.线程组 与 优先级 2.线程组 与 优先级
2. 线程组 与 优先级2.1 线程组 ThreadGroup线程组是一个树状的结构,每个线程组下面可以有很多线程或者线程组。 线程依赖于线程组而存在。 线程组可以统一控制线程的优先级和检查线程的权限。 线程组中的线程只允许访问自己所在线
Java 锁分类 Java 锁分类
Java 中的锁 Java 中的并发包: java.util.concurrent , 又叫 JUC。 1. 乐观锁 与 悲观锁 1.1 乐观锁乐观锁总是假设对共享资源的访问没有冲突,线程可以不停地执行,无需加锁,也无需等待。 一旦多个线程
2 / 5