如何理解 变量不需要与其他的状态变量共同参与不变约束

「已注销」 2018-08-06 03:39:38
volatile 关键字应用场景:

1)运算结果不存在数据依赖,或者只有单一的线程修改变量的值

2) 变量不需要与其他的状态变量共同参与不变约束

如何理解第二点.........求解
...全文
506 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wildyy 2018-08-06
  • 打赏
  • 举报
回复
不变式就是start<end这个表达式,第二点就是说表达式使用了两个及以上的变量,就无法保证正确性,也就是说不变式会失效
「已注销」 2018-08-06
  • 打赏
  • 举报
回复
看到别热博客上拿了一个例子:
private Date start;
private Date end;

public void setInterval(Date newStart, Date newEnd) {
// 检查start<end是否成立, 在给start赋值之前不变式是有效的
start = newStart;

// 但是如果另外的线程在给start赋值之后给end赋值之前时检查start<end, 该不变式是无效的

end = newEnd;
// 给end赋值之后start<end不变式重新变为有效
}
这里所说的 不变式是什么意思? 何时判断? 求教。。。。。。。。。

50,331

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧