什么是@ sun.misc.Contended注释的价值?

时间:2015-12-30 11:50:32

标签: java annotations java-8

java-8中,会出现新的注释@sun.misc.Contended

有几篇写得很好的文章,解释了它的作用以及如何使用它:

但是在任何地方没有解释的是这个注释的value是什么?我的意思是,例如在java.lang.Thread中,它被用作:

@sun.misc.Contended("tlr")
int threadLocalRandomProbe;

这个"tlr"值是多少?它有什么影响?如果此value为默认值(空),会发生什么?

1 个答案:

答案 0 :(得分:11)

取自grepcode.com -> Contended

  

@Contended字段注释可以可选地包括争用组标记。争用组定义一组一个或多个字段,这些字段必须与所有其他争用组隔离。同一个争用组中的字段可能不是成对隔离的。如果没有争用组标记(或使用默认空标记:“”),则每个@Contended字段都驻留在其自己的不同和匿名争用组中。

value记录了

  

(可选)争用组标记。此标记仅对字段级注释有意义。

因此"tlr"只是这个int threadLocalRandomProbe的选择组名称 - 如果您使用相同的组标记注释第二个变量,它们将被组合在一起并隔离在一起。