后端岗位面试题更新 2026-08-05

线程A和线程B各自对初始值为0的变量i执行100次自增操作,每次操作是i=i+1。假设变量未使用synchronized或volatile修饰,请问i的最终值最小可能是多少?最大可能是多少?请说明理由。

金蝶后端开发专业服务风险判断技术原理Java

考察说明

考察多线程并发环境下非原子自增操作的竞争条件和结果范围分析

回答思路

  1. 识别i自增操作的非原子性(读-改-写)
  2. 分析最小可能值:由于操作可交错,最小为100(所有自增都互相覆盖,最终只完成一组)
  3. 分析最大可能值:串行执行时为200
  4. 说明中间值取决于操作交错的实际竞争情况
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。