摘要: 一.内存模型的相关概念。 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比 阅读全文
posted @ 2018-08-14 16:50 igoodful 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 短短的 阅读全文
posted @ 2018-08-14 16:29 igoodful 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 党的 阅读全文
posted @ 2018-08-14 16:25 igoodful 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1.volatile关键字的两层语义 一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。 2)禁止进行指令重排序。 先看一段代码,假如线 阅读全文
posted @ 2018-08-14 11:19 igoodful 阅读(792) 评论(0) 推荐(0) 编辑
摘要: 一、重排序。 1、为什么需要重排序? 现在的CPU一般采用流水线来执行指令。一个指令的执行被分成:取指、译码、访存、执行、写回、等若干个阶段。然后,多条指令可以同时存在于流水线中,同时被执行。 指令流水线并不是串行的,并不会因为一个耗时很长的指令在“执行”阶段呆很长时间,而导致后续的指令都卡在“执行 阅读全文
posted @ 2018-08-14 10:55 igoodful 阅读(675) 评论(0) 推荐(0) 编辑