开发者社区> 问答> 正文

非易失性变量是否需要同步?

考虑2个线程和一个数组int[] values。第一个线程正在执行: synchronized (values) { values[i] = 58; }

当第二个线程正在执行时:

if (values[i] == 58) { }

在synchronized区之外。

如果第一个线程先执行values[i]= 58,是否可以保证第二个线程稍晚执行一次,即使第二个线程在块外if读取,58也可以读取第二个线程values[i]的synchronized?


问题来源:stackoverflow

展开
收起
七天一失眠 2020-03-28 11:15:40 740 0
1 条回答
写回答
取消 提交回答
  • 做一个优秀的阿里云志愿者

    没有

    以这种方式同步不会停止其他线程同时对阵列执行任何操作。但是,将防止其他线程抢占阵列上的锁。


    答案来源:stackoverflow

    2020-03-28 11:15:51
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
用户态高速块缓存方案 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载