目录

1Java内存模型

1.1主内存与工作内存

1.2内存间交互操作

1.3对于volatile型变量的特殊规则

1.4对于long和double型变量的特殊规则

1.5原子性、可见性与有序性

1.6happens-before原则

2Java与线程

2.1线程的实现

2.2Java线程调度

2.3线程状态转换


1Java内存模型

1.1主内存与工作内存

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

1.2内存间交互操作

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

8种操作还需要满足一定规则

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

1.3对于volatile型变量的特殊规则

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

 

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

1.4对于long和double型变量的特殊规则

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

1.5原子性、可见性与有序性

  • 原子性

高效并发-12.Java内存模型与线程

  • 可见性

高效并发-12.Java内存模型与线程

final域不会被重排序

  • 有序性

高效并发-12.Java内存模型与线程

1.6happens-before原则

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

 

2Java与线程

2.1线程的实现

高效并发-12.Java内存模型与线程

线程实现的三种方式

使用内核线程

使用用户线程

用户线程加轻量级进程混合实现

Windows和Linux中,使用内核线程(一对一)

高效并发-12.Java内存模型与线程

由于Java线程映射到系统线程,因此阻塞唤醒线程开销很大,加锁是重量级操作

2.2Java线程调度

协同式、抢占式

Java采用抢占式

2.3线程状态转换

高效并发-12.Java内存模型与线程

高效并发-12.Java内存模型与线程

 

 

分类:

技术点:

相关文章: