• 技术文章 >java >java基础

    Java内存交互的规则

    小妮浅浅小妮浅浅2021-05-18 10:09:56原创2267

    1、不允许read和load、store和write操作之一单独出现。即不允许一个变量从主内存读取了但工作内存不接受。或者从工作内存发起回写了但主内存不接受的情况

    2、不允许一个线程丢弃它的最近的assign操作。即变量在工作内存改变了后必须把该变化同步到主内存中。

    3、不允许没有发生任何的assign操作就把数据同步到主内存中。

    4、一个新的变量只能在主内存中诞生,工作内存要使用或者赋值。必须要经过load或assign操作。

    5、一个变量在同一时刻只允许一条线程进行lock操作,但lock操作可以被同一线程重复执行多次,多次执行lock后,只有执行相同次数的unlock操作,变量才会被解锁。

    6、如果对一个变量进行lock操作后,那将会清空工作内存中此变量的值,在执行引擎使用这个变量前,需要重新执行load或assign操作。

    7、如果一个变量事先没有被lock操作锁定,那就不允许对它进行unlock操作。也不允许去unlock一个被其他线程锁定的变量。

    8、对一个变量执行unLock操作之前,必须要把次变量同步到主内存中(执行store,write操作)。

    以上就是Java内存交互的规则,希望能对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java内存交互
    品易云
    上一篇:Java中strip是什么? 下一篇:Java中Collection如何通过迭代器访问?

    相关文章推荐

    • Java中内核线程是什么?• Java中trim怎么用?• Java中strip是什么?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网