开发者社区> 问答> 正文

java线程对变量的缓存,是一个线程对应一份,还是一个CPU对应一份。:报错

java的多线程中,会将从内存中读取到的变量值缓存在CPU中,如果有三个线程A,B,C 两个CPU1,2。线程A,B由CPU1执行,线程C由CPU2执行,线程A,B,C有一个共同的变量X,那么对于变量X在CPU中的缓存,是CPU1有一份,CPU2有一份,还是CPU1有两份分别对应线程A,线程B?

展开
收起
kun坤 2020-06-06 15:44:39 804 0
1 条回答
写回答
取消 提交回答
  • 一个线程对应一份######并发大了,内存占用直线上升######一个线程对应一份,可以看看ThreadLocal这个类######

    你这问题问的。。让人没法回答。感觉怎么回答都是错的。

    让我想起
    volatile
    来了。。


    ######内存屏障 xchg 指令之类, http://zh.wikipedia.org/zh/%E5%86%85%E5%AD%98%E5%B1%8F%E9%9A%9C , 这是jvm底层考虑的东西,java的线程和内存模型基于jvm,你的好像把jvm的内存、线程和cpu的内存、并行混为一谈######也就是说不同的JVM的实现可能是不一样的呗?JSR规范里没有明确 的要求呗?
    2020-06-06 15:44:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何通过 Serverless 提高 Java 微服务治理效 立即下载
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载