目录
1.前沿
假设变量data初始值为0对其执行m次++操作后,其结果为m。但如果是多线程对data执行m次操作其结果会是什么呢?针对这个问题。首先需要理解data++到底做了什么。
2.data++操作分析
2.1 data++流程图
2.2 4个步骤
(1)从主内存中读取data数据到工作内存。
(2)从工作中读取data,执行++操作。
(3)修改工作内存中的data。
(4)修改主内存中的data。
2.3 工作内存的含义
线程中运行的每一行代码在编译后都会转为各种指令集,CPU根据指令执行相应的操作。如取值、运算。由于CPU的运算速度是非常快,假设data存储在主内存中。每次执行到data运算都需要跑到主内存做一次取值,其效