首页 > 代码库 > [笔记]JAVA内存模型与线程

[笔记]JAVA内存模型与线程

JAVA线程  工作内存  主内存

 

java内存模型中的八种操作:

lock    unlock    read     load     use      assign      store     write

八种基本操作必须满足的规则

 

volatile

当一个变量被定义成volatile之后,它将具备两种特性

  一是保证此变量对所有线程的可见性(“可见性”是指当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。)

  二是禁止指令重排序优化(普通的变量仅仅会保证在该方法执行过程中所有依赖赋值结果的地方都能获取到正确的结果,而不能保证变量赋值操作的顺序与程序代码中的执行顺序一致。)

 

先行发生原则

  程序次序规则(同一线程中)  管程锁定规则  volatile变量规则  线程启动规则  线程中断规则  对象终结规则  传递性

 

 

JAVA线程的状态(5种)

  新建new  运行runable  无限期等待waiting限期等待time waiting  阻塞blocked  结束terminated