1.java中同时发生问题的主要原因是什么?
原子性、可见性、有序性
什么是java内存模型?
java虚拟机规范用于阻止各种硬件和操作系统的内存访问差异。 java内存模型的主要目标是为程序中的每个变量定义访问规则。
3 .除了volatile关键字可以提供内存可见性外,3.java还有哪些关键字?
同步和最终
4.happens-before的规则是什么?
程序顺序规则
计划锁定规则:一个unclock操作happens-before后一个同一对象的锁定操作
卷规则
线程启动规则
线程结束规则
线程中断规则
对象结束规则
传递性规则: A happens-before B,b happens-beforec=ahappens-beforec (该规则特别有用! )
5.java线程的状态是什么? 其中waiting和blocked有什么区别? 线程在什么情况下处于等待状态? 线程在什么情况下处于已阻止状态?
runnable,wating,timed_waiting,blocked,terminated
调用wait ()、parking ()和join ()方法时,线程处于等待状态
线程在等待获取独占锁时处于已阻止状态