美文网首页
Java并发中final的应用总结

Java并发中final的应用总结

作者: ZackJiang | 来源:发表于2018-10-30 00:00 被阅读0次
  1. 写final域重排序规则:final域的写禁止排序到构造函数之外,JVM会在构造函数return之前,final域初始化之后插入storestore屏障,而非final域的写入有可能被JVM重排序到构造函数之外。
    以上规则可以保证:在对象的引用被任意线程可见之前,对象的final域已经被正确初始化过了,而非final域不具备这个保障。
  2. 读final域重排序规则:JVM禁止将初次读一个对象的final域的值重排序到初次获得该对象的引用之前,保证先获得该对象引用,才能读取final域的值,两者之间会插入loadload屏障,而非final域不具备这个保障。
  3. 若final域为引用类型:此时JVM会增加一条约束,构造函数中final域引用对象的成员的写入,不能与构造函数的return语句重排序,构造函数外则没有这样的保障。
  4. 注意final引用不能从构造函数中“溢出”,存在线程安全问题。
参考文献

你以为你真的了解final吗?

相关文章

  • Java并发中final的应用总结

    写final域重排序规则:final域的写禁止排序到构造函数之外,JVM会在构造函数return之前,final域...

  • Java中final关键字

    Java中的final关键字非常重要,它可以应用于类,方法和变量; 什么是final? final是java中的一...

  • java多线程并发

    关于Java并发编程的总结和思考java并发大总结Java并发的四种风格优先使用TimeUnit类中的sleep(...

  • 并发专题目录贴

    并发一、并发一:JAVA并发模型 并发二、原子性、有序性、可见性 并发三、同步原语final、volatile的内...

  • Java线程池总结

    前言: Java中的线程池十分重要,无论是在实际应用中还是应对面试。因此本文根据<>总结...

  • Java关键字final、static使用总结

    Java关键字final、static使用总结 一、final 根据程序上下文环境,Java关键字final有“这...

  • Java关键字final、static使用总结

    Java关键字final、static使用总结 一、final 根据程序上下文环境,Java关键字final有“这...

  • java - final 关键字

    java - final 关键字 java - final 关键字 在 java 中,final 关键字可以修饰类...

  • 2018-11-14号相关学习资料

    java中final关键字的作用深入理解Java中的final关键字java中的final如何使用和理解PPT和1...

  • String、StringBuffer、StringBuilde

    String类 字符串广泛应用在java编程中,String类在java.lang包中,String类是final...

网友评论

      本文标题:Java并发中final的应用总结

      本文链接:https://www.haomeiwen.com/subject/kpcwtqtx.html