当前位置: 首页 > 知识库问答 >
问题:

关于一个简单Java程序的语义

谷泽宇
2023-03-14

如下考虑Java类a,其中fainteger字段,而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;”?

共有1个答案

查宜民
2023-03-14

是的,在f=7和u=f之间,执行可能会中断。您将其称为关键区域,可以使用锁、互斥或信号量来保护它。通过这种方式,您可以确保没有其他线程(甚至硬件中断,在java中不是这样;)在没有明确需要的情况下更改您的数据

 类似资料:
  • You are the light of the world. A city located on a hill cannot be hidden. People do not light a lamp and put it under a basket but on a lampstand, and it gives light to all in the house. In te same w

  • 文件结构: 这里是进行了外部注入 这里是configDemo.java代替了bean.xml中的扫描 如果是外部注入的话则需要加上注解 @AutoWired:根据属性类型自动装配 @Qualifier:根据属性名称自动注入 @Resource:都可以 @Value:注入普通类型属性 这里的注解注入方式为 @Component:普通主键 @Service:业务 @Controller:控制 @Rep

  • 我正试图解决这个问题:

  • 问题内容: 我现在才开始学习Java的内部体系结构。我大致了解了类加载的概念,该类在运行时加载所需的类,在找不到类且特定的类加载器加载由该类引用的类时抛出。 有人可以在下面的示例Java代码中清楚地说明类加载的流程,即引导类加载和用户定义的类加载的顺序。 我还从参考资料中了解到“ 维护其加载的类的名称空间”。通过名称空间,这是否意味着类的文字名称?也有人可以解释一下它的含义/优势吗? 问题答案:

  • 本文向大家介绍一个超级简单的python web程序,包括了一个超级简单的python web程序的使用技巧和注意事项,需要的朋友参考一下 在MAC/LINUX环境下,执行vi hello.py命令,并输入以下代码 执行python hello.py 8080出现  http://0.0.0.0:8080/ 然后访问"http://localhost:8080/Service/Match"地址,返

  • 本文向大家介绍C#程序创建一个简单线程,包括了C#程序创建一个简单线程的使用技巧和注意事项,需要的朋友参考一下 为了创建线程,我创建了一个函数- 调用上述函数以创建线程,并创建一个新的ThreadStart委托- 示例 使用以下代码创建一个简单的线程。 输出结果