摘要:
当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。 特点 原子性:提供互斥访问,同一时刻只能有一个线程来对它进行操作。可见性:一个线程对主内存的修改可以及时的被其他线程 阅读全文
摘要:
前言 Java主内存和工作内存 特性 对所有线程可见;防止指令重排; 可见性 指当一条线程修改了某个volatile变量的值,新值对于其它线程来说是可以立即知道的,而普通变量无法做到这点。 误区 由于volatile对所有线程立即可见,对volatile的写操作会立即反应到其它线程,因此认为基于vo 阅读全文
摘要:
前言:了解JVM内存模型 内容 参考JVM内存模型,可分为主内存和工作内存。 主内存:所有的线程所共享的,主要包括本地方法区和堆工作内存:每个线程都有一个工作内存不是共享的 一个是属于该线程私有的栈对主存部分变量拷贝的寄存器 所有的变量都存储在主内存中(虚拟机内存的一部分),对于所有线程都是共享的。 阅读全文
摘要:
程序计数器 较小内存空间线程私有当前线程行号指示器执行native,则为空undefined唯一没有规定任何OutOfMemoryError区域虚拟机的概念模型 虚拟机栈 线程私有,描述方法执行的内存模型存放方法运行时所需数据(局部变量表、操作数栈、动态链接、方法出口等),成为栈帧Stack Fra 阅读全文