假设有一个类 `Counter`,其中包含一个实例变量 `count` 和一个类变量 `totalCount`,以及一个修改它们的方法 `increment`。在多线程环境下,多个 `Counter` 实例同时调用 `increment` 方法,关于变量的并发访问,哪种表述最能准确反映可能出现的状况? ```java public class Counter { private int count = 0; private static int totalCount = 0; public void increment() { count++; totalCount++; } } ```

答案解析

选项A错误,`totalCount` 是类变量,在并发情况下,多个线程对类变量的增量操作可能会导致数据不一致。选项D错误,并发情况下,变量操作并非线程安全,会受到影响。选项B错误,由于 `count` 是实例变量,每个线程访问的是不同的变量,因此不会出现数据不一致的情况。选项C正确,由于 `count` 是每个实例的独立变量,每次递增操作都仅在各自的实例中进行,不会出现数据不一致;但是 `totalCount` 是静态变量,所有实例共享,多个线程并发对其进行自增操作时会发生数据竞争,导致数据不一致的问题,例如出现更新丢失的情况。
正确答案:C
随机推荐
开始刷题