ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/concurrent/Contended.java
Revision: 1.2
Committed: Tue Nov 27 11:56:36 2012 UTC (11 years, 5 months ago) by dl
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
State: FILE REMOVED
Log Message:
Move to sun.misc

File Contents

# Content
1 /*
2 * Written by Doug Lea with assistance from members of JCP JSR-166
3 * Expert Group and released to the public domain, as explained at
4 * http://creativecommons.org/publicdomain/zero/1.0/
5 */
6
7 package java.util.concurrent;
8
9 import java.lang.annotation.ElementType;
10 import java.lang.annotation.Retention;
11 import java.lang.annotation.RetentionPolicy;
12 import java.lang.annotation.Target;
13
14 /**
15 * An annotation expressing that objects and/or their fields are
16 * expected to encounter memory contention, generally in the form of
17 * "false sharing". This annotation serves as a hint that such objects
18 * and fields should reside in locations isolated from those of other
19 * objects or fields. The effects of this annotation will nearly
20 * always add space overhead to programs. Its use is warranted only
21 * when the performance impact of this time/space tradeoff is
22 * intrinsically worthwhile; for example, in concurrent contexts in
23 * which each instance of the annotated object is often accessed by a
24 * different thread.
25 *
26 * <p>A {@code @Contended} field annotation may optionally include a
27 * contention group tag. All fields with the same tag are considered
28 * as a group with respect to isolation from other groups. A default
29 * annotation without a tag indicates contention with all other
30 * fields, including other {@code @Contended} ones.
31
32 * <p>When the annotation is used at the class level, all unannotated
33 * fields of the object are considered to be in the same default
34 * group, separate from any fields that carry their own (possibly
35 * tagged) {@code @Contended} annotations.
36 *
37 * <p><b>Sample Usages</b>. (Forthcoming.)
38 *
39 * @since 1.8
40 */
41 @Retention(RetentionPolicy.RUNTIME)
42 @Target({ElementType.FIELD, ElementType.TYPE})
43 public @interface Contended {
44 /**
45 * The (optional) contention group tag.
46 */
47 String value() default "";
48 }