外观
volatile synchronized Atomic 有什么区别?
标准回答
volatile 主要提供可见性和相关有序性,不能让 count++ 这种读改写整体变成原子操作;synchronized 提供互斥与可见性,适合保护一组必须一致的操作;原子类提供特定变量的原子更新,适合计数、标记和简单状态更新。
机制解释
多个变量之间有约束时,分别使用 Atomic 并不自动保证组合一致。例如“连接状态为 READY 时,session 必须存在”是整体约束,可以通过锁、不可变快照或单线程状态机维护。
延伸追问
设备 SDK 更倾向哪种并发设计?优先减少共享可变状态,把连接和命令状态集中到一个串行执行器;跨线程数据用不可变对象传递,再在必要处精确同步。
内容来源
- Android 智能硬件 SDK 技术 Wiki · 原条目
Q21