Explain Java concurrency and fix i++ race | WeRide
Back
|
Home
/
Software Engineering Fundamentals
/
WeRide
Explain Java concurrency and fix i++ race
WeRide
Oct 2, 2025, 12:00 AM
Software Engineer
Technical Screen
Software Engineering Fundamentals
0
0
Java 并发编程(基础与陷阱)
简要解释 Java 并发编程中:
线程(Thread)与任务(Runnable/Callable)的关系
可见性、原子性、有序性(Java Memory Model 的三大核心)
volatile
、
synchronized
、
Lock
、原子类(Atomic*)分别解决什么问题
说明为什么在多线程下对共享变量执行
i++
可能出现“值覆盖/丢失更新(lost update)”。
写一个最小可复现的示例程序:
启动多个线程对同一个共享计数器执行大量
i++
最终输出结果明显小于理论值
给出至少两种线程安全的改写方式,并说明各自的适用场景与代价(性能、可扩展性、公平性等)。
说明:示例无需依赖任何框架,仅使用标准 JDK。
Solution
Login required
Show
Comments (0)
Sign in
to leave a comment
Loading comments...