欢迎来到Zgxh的博客
4.线程间通信 4.线程间通信
4. 线程间通信4.1 锁与同步JAVA 中的锁都是对象锁,是基于对象的。 4.1.1 线程同步线程同步是指约束线程按照一定的顺序执行。 线程同步可以通过锁 synchronized 来实现: public class ObjectLock
Java 线程池 Java 线程池
12. 线程池 Thread Pool12.1 线程池简介线程池 Thread Pool 是一种基于池化思想管理线程的工具,经常出现在多线程服务器中。 如数据库连接池、httpClient连接池。 Java 中的线程池是 ThreadPo
AQS AQS
11. AQSAQS,AbstractQueuedSynchronizer,抽象队列同步器,是一个抽象类。 是用来构建锁和同步器的框架。基于 AQS 实现的锁: ReentrantLock ReentrantReadWriteLock C
Java 对象头 Java 对象头
Java 对象头1. Java 对象头的组成 Mark Word 指向类元信息的指针 Klass Pointer 数组的长度 1.1 Mark WordMark Word 在 32 位 JVM 中的长度是 32 bit,在 64 位 J
1.Java 中多线程的实现 1.Java 中多线程的实现
1. Java 中多线程的实现主要有三种方案: 继承 Thread 类,并重写 run() 方法 实现 Runnable 接口,并重写 run() 方法 实现 Callable 接口,并重写 call() 方法 其中前两种比较常见。 1
进程与线程 进程与线程
0. 进程与线程进程是应用程序在某块独立内存上的运行活动,是系统进行资源分配的基本单位。各个进程之间互不干扰,包括程序段、数据、PCB。 程序段:程序运行的代码; 数据段:程序运行期的相关数据; PCB 进程控制块:描述进程的基本情况和运
内存模型 JMM 内存模型 JMM
6. Java 内存模型6.1 并发模型线程间进行通信和同步,可以通过 2 种方式的并发模型来实现: 消息传递并发模型 共享内存并发模型 Java 中,采用的是第二种:共享内存并发模型 6.2 JVM 运行时数据区 方法区 和 堆,
3.线程状态及其转化 3.线程状态及其转化
3. 线程状态及其转化线程是轻量级进程,所以线程和进程状态一致。 Java 线程状态转化图: 3.1 Java 线程的 6 个状态Thread.State 源码: public enum State { NEW,
2.线程组 与 优先级 2.线程组 与 优先级
2. 线程组 与 优先级2.1 线程组 ThreadGroup线程组是一个树状的结构,每个线程组下面可以有很多线程或者线程组。 线程依赖于线程组而存在。 线程组可以统一控制线程的优先级和检查线程的权限。 线程组中的线程只允许访问自己所在线
10.CAS 与 原子操作 10.CAS 与 原子操作
10. CAS 与 原子操作10.1 原子性原子操作就是最小的不可拆分的操作,操作一旦开始,就不能被打断,直到操作完成。 要么全部成功,要么全部失败。 原子操作能保证线程安全性。 10.1.1 Java 中的原子类java.util.c
8.volatile 关键字 8.volatile 关键字
8. volatile8.0 为什么存在内存可见性问题 -> 缓存一致性问题可见性是指某线程修改了一个变量的值,新值对于其他线程是立即可见的。 为了提高代码执行速度,CPU 先把资源从内存加载到 CPU 缓存中(L1, L2等),但操
7.指令重排 与 happens-before 7.指令重排 与 happens-before
7. 指令重排 与 happens-before指令重排可以在 CPU 闲置(等待变量装载等)时,先执行其他指令,提高性能。分为: 编译器优化重排:编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。 指令并行重排:现代处理
1 / 2