作者回复: Lifecycle只是简单的单个状态变更,所以用CAS能够最大程度保证效率。ViewModel使用synchronized,主要还是因为其中的mBagOfTags,它是一个Map,Android官方因为一些旧系统的限制,导致无法使用ConcurrentHashMap,所以才出此下策。