在java-8
新的注释中@sun.misc.Contended
出现.
有几篇写得很好的文章,解释了它的作用以及如何使用它:
什么是@Contended和False Sharing?
@Contended(又名JEP 142)
Java @Contended注释有助于减少错误共享
但是在任何地方都没有解释,value
这个注释是什么?我的意思是,例如在java.lang.Thread
它中使用如下:
@sun.misc.Contended("tlr") int threadLocalRandomProbe;
这个"tlr"
价值是多少?它有什么影响?如果这value
是默认(空)会发生什么?
取自grepcode.com - >争辩:
甲
@Contended
字段注释可以任选地包括一个争用组标签.争用组定义一组一个或多个字段,这些字段必须与所有其他争用组隔离.同一个争用组中的字段可能不是成对隔离的.如果没有争用组标记(或使用默认空标记:""),则每个@Contended
字段都驻留在其自己的不同和匿名争用组中.
将value
被记录与
(可选)争用组标记.此标记仅对字段级注释有意义.
因此,"tlr"
它只是一个选择的组名称int threadLocalRandomProbe
- 如果您使用相同的组标记注释第二个变量,它们将被组合在一起并隔离在一起.