如果我需要原子访问对象中的整型字段,将该字段声明为AtomicInteger就足够了吗?或者我需要使用AtomicIntegerFieldUpdater吗?(为什么?)
发布于 2011-07-13 05:05:43
使用AtomicInteger就足够了。原子更新器用于volatile字段;主要的用例是具有大量需要原子访问的字段的数据结构;您可以使用字段更新器将这些字段与原子语义结合使用,而无需为每个字段提供AtomicInteger引用。
有关详细讨论,请参阅this link。
发布于 2011-07-13 05:30:11
AtomicInteger和朋友通常应该足够了,而且通常更可取,因为它不涉及反射或其他类似的黑客行为。
在有大量实例需要更新的情况下,AtomicIntegerFieldUpdater会很有用,因为这会减少对象的总数。如果除了直接读取和写入之外的操作很少使用,那么它就特别有用。例如,在java.nio中使用AtomicReferenceFieldUpdater作为attach方法,该方法通常设置一次(公开为get- and - set )并读取多次。
发布于 2011-07-13 05:10:53
https://stackoverflow.com/questions/6671020
复制相似问题