我一直在阅读有关SMPs机器(x86/ARM)和编译器重新排序以提高效率的文章。现在我想创建一个计数器,该变量作为ActivityLifecycleCallbacks实现的私有成员存在。对这个变量的操作是在Android的回调上执行的(它总是在UI线程上)。
因为"x++“不是原子语句。我需要使用AtomicInteger吗?即使变量总是只在UI线程上被访问?
发布于 2019-12-05 01:46:53
如果它只被UI线程访问,那么从技术上讲,你不需要使用AtomicInteger。当我说访问时,我指的是读和写。
但是,考虑到您是在并发体系结构下工作,使用并发对象(如AtomicInteger或更高性能的LongAdder )可能更安全。
https://stackoverflow.com/questions/59180482
复制相似问题