12 |
|
|
13 |
|
/** |
14 |
|
* A keyed table of adders, that may be useful in computing frequency |
15 |
< |
* counts and histograms, or may be used a form of multiset. A {@link |
16 |
< |
* LongAdder} is associated with each key. Keys are added to the table |
17 |
< |
* implicitly upon any attempt to update, or may be added explicitly |
18 |
< |
* using method {@link #install}. |
15 |
> |
* counts and histograms, or may be used as a form of multiset. A |
16 |
> |
* {@link LongAdder} is associated with each key. Keys are added to |
17 |
> |
* the table implicitly upon any attempt to update, or may be added |
18 |
> |
* explicitly using method {@link #install}. |
19 |
|
* |
20 |
|
* <p><em>jsr166e note: This class is targeted to be placed in |
21 |
< |
* java.util.concurrent.atomic<em> |
21 |
> |
* java.util.concurrent.atomic.</em> |
22 |
|
* |
23 |
|
* @since 1.8 |
24 |
|
* @author Doug Lea |
31 |
|
private final ConcurrentHashMapV8<K, LongAdder> map; |
32 |
|
|
33 |
|
static final class CreateAdder |
34 |
< |
implements ConcurrentHashMapV8.MappingFunction<Object, LongAdder> { |
35 |
< |
public LongAdder map(Object unused) { return new LongAdder(); } |
34 |
> |
implements ConcurrentHashMapV8.Fun<Object, LongAdder> { |
35 |
> |
public LongAdder apply(Object unused) { return new LongAdder(); } |
36 |
|
} |
37 |
|
|
38 |
|
private static final CreateAdder createAdder = new CreateAdder(); |