[笔记]JAVA内存模型与线程
JAVA线程 工作内存 主内存
java内存模型中的八种操作:
lock unlock read load use assign store write
八种基本操作必须满足的规则
volatile
当一个变量被定义成volatile之后,它将具备两种特性
一是保证此变量对所有线程的可见性(“可见性”是指当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。)
二是禁止指令重排序优化(普通的变量仅仅会保证在该方法执行过程中所有依赖赋值结果的地方都能获取到正确的结果,而不能保证变量赋值操作的顺序与程序代码中的执行顺序一致。)
先行发生原则
程序次序规则(同一线程中) 管程锁定规则 volatile变量规则 线程启动规则 线程中断规则 对象终结规则 传递性
JAVA线程的状态(5种)
新建new 运行runable 无限期等待waiting限期等待time waiting 阻塞blocked 结束terminated