内存模型的基础 内存模型的抽象结构 共享变量 堆里面的对象、数组元素,静态变量(方法区) 局部变量 不会有线程可见性的问题,不会受内存模型的影响 指令重排 编译器优化的重排序 不改变单线程语义的前提下重新安排编译的顺序 --编译器 指令级并?的重排序 现在的处理器采用的技术,多条指令重叠进行,只要两 ...
分类:
其他好文 时间:
2021-06-23 16:42:19
阅读次数:
0
CPU在进行读等待的同时执行指令,是CPU乱序的根源,不是乱,而是提高效率. 指令1:去内存中读取数据,等待内存返回,CPU去内存读取数据,CPU本身和内存的速度是100 : 1,所以他会一直等待内存返回; 指令2:与指令1没有任何依赖关系,且不去内存中读数据,那么指令2就会优先执行; 代码写的时候 ...
分类:
编程语言 时间:
2020-12-25 11:45:40
阅读次数:
0
这是Java建设者的第64篇原创文章操作系统现代操作系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成。计算机操作系统是一个复杂的系统。然而,程序员不会直接和这些硬件打交道,而且每位程序员不可能会掌握所有操作系统的细节,这样我们就不用再编写代码了,所以在硬件的基础之上,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户
分类:
其他好文 时间:
2020-12-07 12:18:49
阅读次数:
5
在一男子给对象转账5000元,居然又退还了!和我就站在你面前,你却视而不见!文中,我们学习了线程安全的原子性和可见性,这篇文章就来说说有序性。有序性首先还是来看下概念,有序性就是指代码按照编写顺序执行。大家可能会有疑问,难道还会出现乱序执行吗?因为编译器为了程序性能,可能会改变代码中语句的先后顺序,也就是指令重排序。比如:Stringname="wupx";Integerage=18;编译器优化后
分类:
其他好文 时间:
2020-09-02 16:53:38
阅读次数:
42
乱序执行的目的就是尽可能的防止分发停顿,比如真正的写后读相关时,流水线必须停顿。思路就是让相关的指令离独立的指令远一点。 乱序执行的条件 需要在值的生产者和消费者之间建立通信,这里消费者指的是当前这条指令,生产者指的是在与这条指令相关的指令。 寄存器重命名:给每个值一个tag。 需要给指令提供缓冲区 ...
分类:
其他好文 时间:
2020-08-02 16:16:21
阅读次数:
97
JMM和底层实现原理 1.并发编程领域的关键问题 1.1 线程之间的通信 线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信,典型的共享内存通信方式就 ...
分类:
其他好文 时间:
2020-07-20 22:34:55
阅读次数:
65
?# CPU & 多线程 本文是阅读《大话处理器》的读书摘要 graph TD A[大话处理器] B[流水线] C[3级&5级流水] D[3类冒险] E[分支预测&乱序执行] F[超标量&VLIW] G[Cache 一致性] H[写通&写回] I[MESI] J[并行] A --> B B --> ...
分类:
编程语言 时间:
2020-07-03 23:22:26
阅读次数:
91
并发编程的本质是全局上下文和调度执行的管理。 并发编程实际上是一个运行时复杂系统的管理工具。 并行任务的全局上下文和全局目标的管理; 乱序执行的多个任务达到一致的执行结果。 管理: 任务管理; 上下文管理(资源); 整体目标管理; 数据结构+算法 数据、资源、状态 工作组 执行控制 执行流、任务。 ...
分类:
其他好文 时间:
2020-02-05 11:39:16
阅读次数:
69
Java内存模型(Java Memory Model)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。 JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内用于存储线程私有的数据,而Java ...
分类:
编程语言 时间:
2020-01-31 19:15:35
阅读次数:
129
1.说说你对volatile的理解。 volatitle在多线程情况下,可以保证数据数据的可见性。禁止指令重排优化,从而避免多线程环境下程序出现乱序执行导致执行结果不一致的问题,它不支持原子性(使用AutomicInteger来保证原子性)。 2.你在哪些地方使用过volatitle在单例模式DCL ...
分类:
编程语言 时间:
2020-01-21 20:02:17
阅读次数:
78