加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

关于简单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中的);)在没有明确要求的情况下更改您的数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读