请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

多线程时共享变量问题

学习中有两个问题,希望老师解答:
1、线程对一个没有volatile修饰的变量进行写操作后,何时会将其值更新到主内存?
2、当线程对一个静态变量进行操作时,其操作方式和过程是否与非静态变量一致?

正在回答

1回答

翔仔 2019-03-19 00:14:33

同学好,

  1. 没办法确定是什么时候会将工作内存的值刷新到主内存,大致主要根据JVM实现系统决定,因此才有的volatile,比如说工作内存写满了,此时就会触发刷新

  2. 操作方式和过程本质上没有区别

0 回复 有任何疑惑可以回复我~
  • 提问者 旭丶 #1
    好的,谢谢老师解答
    回复 有任何疑惑可以回复我~ 2019-03-19 10:49:29
  • 老师提问一个问题,顺便占个楼(不好意思啦),volatile主要还是用于满足多线程状态下 该变量对于其他线程的一个可见性,而synchronizede关键字也实现了此功能,请问实现了synchronized是否还需要对共享变量进行volatile修饰。
    回复 有任何疑惑可以回复我~ 2019-03-21 09:48:11
  • 翔仔 回复 薛天清 #3
    同学好,不需要哈,synchronized本身实现的功能就包括并重于volatile的功能
    回复 有任何疑惑可以回复我~ 2019-03-22 01:04:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信