`
翟健
  • 浏览: 3510 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
查阅地址:http://ifeve.com/java-memory-model-4/ volatile特性    1、相当于对volatile共享变量做了同步    2、volatile变量的写对读具有可见性    3、单个volatile变量具有原子性,但类似volatile++不具有可见性 volatile类型变量对内存可见性的 ...
查阅地址:http://ifeve.com/java-memory-model-3/ 数据竞争    1、当一个线程写数据的同时,另一个线程在读这个数据,并且没有进行同步,就会产生数据竞争    2、如果程序正确同步,那么程序执行会具有顺序一致性,它与顺序一致性的执行结果相同 顺序一致性    1、顺序一致性是理想模型    2、无论同步与否,每个操作的执行结果会对后来要执行的操作可见 JMM未同步执行特征    1、JMM只保证最小的安全性:数据不会无中生有,它会在初始化时清空数据,并初始化为(0,null,false)    2、JMM不保证单线程中的执行是按顺序执行的,可能已经做了重排序 ...
查阅地址为:http://ifeve.com/java-memory-model-2/ 数据依赖性    1、单线程中,前后两个操作如果有数据依赖:写后读,读后写,写后写,编译器和处理器将不做重排序 as-if-serial    1、as-if-seral的意思是无论采取怎样的序列执行,单线程的执行结果都不会变,处理器可以重排序执行的顺序,它为程序员提供一种幻境:程序是按顺序执行的,但其实编译器和处理器由于性能上的考虑已经做了重排序 程序执行顺序   1、如果程序的执行满足as-if-serial,即使a happens before b,a执行的结果不需要对b可见,JMM会认为这个执行是合法 ...
最近对Java内存模型比较感兴趣,跟着程晓明的深入理解Java内存模型学习了下,查阅地址为: http://ifeve.com/java-memory-model-1/#header 基本模型:   1、线程之间的通信有两种:共享内存和消息传递,Java使用的是共享内存的形式进行通信   2、Java中,局部变量,方法定义参数不会被共享,所以不会有可见性的问题,存放在堆内存的变量才会被共享,会有可见性问题   3、Java内存模型(简称JMM)定义了线程和主线程的关系,每个线程都有一个缓冲池,线程之间通信的过程为:A线程把本地内存池的信息刷新到主内存中,B线程到主内存中取数据,并更新自己的本地内 ...
struts2的执行过程 1.首先进入StrutsPrepareAndExecuteFilter这个filter,执行doFilter方法 public void doFilter(ServletRequest req,ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResp ...
Global site tag (gtag.js) - Google Analytics