已经学过java虚拟机,视频讲的不错,但是再深入点就好了。其实线程的工作内存和方法的工作内存都是在逻辑上的内存,实际并不存在的,而且线程不也是方法的调用吗?只不过是在同时进行罢了。
2016-11-01
最赞回答 / 洋__
呵呵,提问者没搞懂,大家不要被这个人带偏了,他才在误人子弟!估计提问者是想说内存可见了,怎么还会执行结果不一致呢?谁说过保证了内存可见性就保证执行结果是一致的??别人是内部线程类,视频里read()操作和write()操作加了synchronized是原子性的,但是又不保证read()和write()哪个先执行,所以会出现2个结果,如果是先read()执行,那么result就是0,如果write()先执行,那么result就是6。最后老师通过延时保证write()先执行,结果就是只有6。建议多学习,少抱怨...
2016-11-01