Java资源分享网 - 专业的Java学习网站 学Java,上Java资源分享网
深入理解并发可见性、有序性、原子性与JMM内存模型 PDF 下载
发布于:2024-04-12 11:07:53
(假如点击没反应,多刷新两次就OK!)

深入理解并发可见性、有序性、原子性与JMM内存模型 PDF 下载 图1

 

 

资料内容:

 

1. 并发三大特性
并发编程Bug的源头:原子性、可见性和有序性问题
1.1 原子性
一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。在 Java
中,对基本数据类型的变量的读取和赋值操作是原子性操作(64位处理器)。不采取任何的原子性保
障措施的自增操作并不是原子性的,比如i++操作。
原子性案例分析
下面例子模拟多线程累加操作
 
1 public class AtomicTest {
2 private static int counter = 0;
3
4 public static void main(String[] args) {
5
6 for (int i = 0; i < 10; i++) {
7 Thread thread = new Thread(() -> {
8 for (int j = 0; j < 10000; j++) {
9 counter++;
10 }
11
12 });
13 thread.start();
14 }
15
16 try {
17 Thread.sleep(3000);
18 } catch (InterruptedException e) {
19 e.printStackTrace();
20 }
21
22 System.out.println(counter);
23
24 }
25
26 }
27