线程安全
摘要:一.Java语言中的线程安全 可以将Java语言中各种操作共享的数据分为五类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。 1.不可变 JDK5以后,不可变(Immutable)的对象一定是线程安全的,无论是对象的方法实现还是方法的调用者,都不需要再进行任何线程安全措施。 只要一个不可变
阅读全文
并发编程的三个特征
摘要:1.原子性(Atomicity) 定义:不可再分割的操作 Java内存模型直接保证原子性变量操作包括:read、load、assign、use、store 和 write 这6个 2.可见性(Visibility) 定义:是指当一个线程修改了一个共享变量的值时,其他线程能够立即的指这个修改 java
阅读全文
对于Volatile型变量的特殊规则
摘要:1.关键字 volatile是Java虚拟机提供的最轻量级的同步机制 2.当一个变量被定义称volatile之后,它将具备两项特性: 1)保证此变量对所有线程可见性,这里的“可见性”是指当一条线程修改了这个变量的值,新值对于其他线程可以立即得知 volatile变量在各个线程的工作内存中是不存在一致
阅读全文
HappensBefore(先行发生原则)的8大原则
摘要:一.流程控制 Java 中流程控制方式采用结构化程序设计中规定的三种基本流程结构: 顺序结构 分支结构 循环结构 1、顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转。 2、分支结构 根据条件,选择性地执行某段代码; 有 if...else 和 switch-case 两种分支语句; 3、循
阅读全文