@Contended
表示被注解的类或/字段可能存在内存竞争,通常采用伪共享(false sharing)。此注释用作提示,此类对象和字段应驻留在与其他对象或字段的位置隔离的位置。对内存争用的易感性是对象和字段的预期用法的属性,而不是它们的类型或限定符。此注解的代价是很大的空间开销。仅当此时间/空间权衡的性能影响本质上值得时,才能使用此注解。
对于字段有一个可选的标签竞争组(contention group)。一个竞争组定义了一个或多个字段,竞争组之间是隔离的。但同一个竞争组中的字段可能不隔离。如果没有争用组标记(或使用默认的空标记:“”),则每个字段都驻留在其自己的不同和匿名争用组中。
当此注解应用于类级别时,效果等同于将此类中所有没有 @Contended 注解的字段归类到同一个匿名组中。使用类级别注释,实现可以选择不同的隔离技术,例如隔离整个对象,而不是隔离不同的字段。此时竞争组毫无意义而被忽略。
【@Contended】类级别注释不会被继承,并且对任何子类中声明的字段都没有影响。但是,所有注释的效果对所有子类实例仍然有效,从而隔离了所有已定义的竞争组。竞争组标记不是继承的,并且在超类和子类中使用的相同标记表示不同的争用组。
推荐阅读
- 科学养胃,别被忽悠,其实真的很简单
- 被新冠“病毒”感染的日常生活(八)
- 过年瞎想
- 【读书清单20】写作吧!你值得被看见(2)
- 罗塞塔石碑的意义(古埃及文字的起源,圣书体文字是如何被破解的)
- 【Thesewt】蒙昧(续)
- https请求被提早撤回
- 为什么文章被4个专题收录了阅读量却是个位数()
- 陷入父母的心理战,孩子被彻底打败
- 国家宝藏观后有感