JAVA并发编程常识
ppt附件下载
JVM内存模型
堆:
所有对象全部放在共享堆空间中
对象的属性在共享堆空间内
堆内存单字节对齐,short不变
栈:
每个线程都有独立的线程栈空间
线程栈只存基本类型和对象地址
栈内存4字节对齐,short变int
对象地址4字节,引用堆空间
方法中局部变量在线程栈空间内
局部变量不会竞争,线程安全
方法参数在栈顶交叉,不拷贝
栈顶寄存,减少中间状态读取
PC指针记录当前执行位置
原子性
对象类型:
对象地址原子读写,线程安全
并发读不可变状态,线程安全
并发读写可变状态,非线程线程
基本类型:
int,char数值读写,线程安全
long,double高低位,非线程安全
i++等组合操作,非线程安全