关于简单Java程序的语义
发布时间:2020-12-15 04:19:51 所属栏目:Java 来源:网络整理
导读:考虑如下 Java类A,其中f是A的Integer字段,u是A类中方法foo()的局部Integer变量. class A{ int f; void foo(){ int u; ... f = 7; u = f; ... } ....} 声称:这是错误的: variable ‘u’ MUST be 7 at the end of “f=7; u =f;”? 我的观点是’f’可能被其他
考虑如下
Java类A,其中f是A的Integer字段,u是A类中方法foo()的局部Integer变量.
class A{ int f; void foo(){ int u; ... f = 7; u = f; ... } .... } 声称:这是错误的: variable ‘u’ MUST be 7 at the end of “f=7; u =f;”? 我的观点是’f’可能被其他线程改变,因此上述声明一般应该是错误的.我对吗? 谢谢你的想法. 解决方法
是执行可以在f = 7,u = f之间中断.您将此称为可以使用锁,互斥锁或信号量进行保护的关键区域.通过这种方式,您可以确保没有其他线程(甚至是硬件中断,而不是Java中的);)在没有明确要求的情况下更改您的数据.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |