- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 Java 多线程的内存模型
Java 多线程的内存模型 JMM是是Java的内存模型,和JVM的内存模型是两回事(Java Runtime Data Area) 内存模型图如下 当多线程进行数据交互的时候,比如线程A修改了共享变量,线程B读取读,A修改完变量在自己的工作内存中,B是看不到(或者说感知不到A的修改),只有A的工作区协会到主内存,B再从主内存读取自己的工作区才能进一步操作,因为指令重排序的存在,这个写读的顺序可能被打乱,所以JMM需要提供原子性,可见性,有序性的保证。 原子性 一个操作不能被打断,要么执行成功,要么执行失
2020-08-26 21:27:11
208
原创 volatile解析
volatile解析 volatile这个关键字可能很多朋友都听说过,或许也都用过,但是在java5以后这个关键字发出了异样的光芒。volatile特性1.保证内存可见性2.防止指令重排首先先带领大家了解一下java的内存模型中的内存可见性,和原子性。可见性: 可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另一个线程马上就能看到。原子性: ...
2018-07-07 14:01:18
316
原创 Java Runtime Data Area
Java 内存模型 Java内存模型 不是JMM内存模型,这个是Java Runtime Data Area。 可以按照2个维度来划分,线程独占和非线程独占。 线程独占 栈 本地方法栈 程序计数器 栈 用来保存方法的局部变量 基本数据类型的值 保存方法执行的栈帧 保存对象的实例(指向堆的指针) 本地方法栈 用来支持虚拟机使用到的native方法服务 保存对方发的出入栈和入参地址和返回地址。 先入先出的结构。 程序计数器 用来记录线程执行的位置,当线程执行native方法的时候程序计数器为空。 为什
2020-08-23 21:45:57
263
原创 一点点orcale
基本语句: describe xxx(表名称);//查看表结构 set linesize 300;//每行显示多少字符 set pagesize 15;//每页显示多少记录 conn syste/sys //切换用户 conn sys/sys as sysdba(超级用户); show user //显示当前户 oracle by asc //升序
2016-07-16 16:16:21
263
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅