jsr166e
Class DoubleMaxUpdater
java.lang.Object
java.lang.Number
jsr166e.DoubleMaxUpdater
- All Implemented Interfaces:
- Serializable
public class DoubleMaxUpdater
- extends Number
- implements Serializable
One or more variables that together maintain a running double
maximum with initial value Double.NEGATIVE_INFINITY
. When
updates (method update(double)
) are contended across threads, the
set of variables may grow dynamically to reduce contention. Method
max()
(or, equivalently, doubleValue()
) returns the
current maximum across the variables maintaining updates.
This class extends Number
, but does not define
methods such as hashCode
and compareTo
because
instances are expected to be mutated, and so are not useful as
collection keys.
jsr166e note: This class is targeted to be placed in
java.util.concurrent.atomic
- Since:
- 1.8
- Author:
- Doug Lea
- See Also:
- Serialized Form
Constructor Summary |
DoubleMaxUpdater()
Creates a new instance with initial value of Double.NEGATIVE_INFINITY . |
Method Summary |
double |
doubleValue()
Equivalent to max() . |
float |
floatValue()
Returns the max() as a float
after a narrowing primitive conversion. |
int |
intValue()
Returns the max() as an int after a
narrowing primitive conversion. |
long |
longValue()
Returns the max() as a long after a
narrowing primitive conversion. |
double |
max()
Returns the current maximum. |
double |
maxThenReset()
Equivalent in effect to max() followed by reset() . |
void |
reset()
Resets variables maintaining updates to Double.NEGATIVE_INFINITY . |
String |
toString()
Returns the String representation of the max() . |
void |
update(double x)
Updates the maximum to be at least the given value. |
DoubleMaxUpdater
public DoubleMaxUpdater()
- Creates a new instance with initial value of
Double.NEGATIVE_INFINITY
.
update
public void update(double x)
- Updates the maximum to be at least the given value.
- Parameters:
x
- the value to update
max
public double max()
- Returns the current maximum. The returned value is
NOT an atomic snapshot: Invocation in the absence of
concurrent updates returns an accurate result, but concurrent
updates that occur while the value is being calculated might
not be incorporated.
- Returns:
- the maximum
reset
public void reset()
- Resets variables maintaining updates to
Double.NEGATIVE_INFINITY
. This method may be a useful
alternative to creating a new updater, but is only effective if
there are no concurrent updates. Because this method is
intrinsically racy, it should only be used when it is known
that no threads are concurrently updating.
maxThenReset
public double maxThenReset()
- Equivalent in effect to
max()
followed by reset()
. This method may apply for example during quiescent
points between multithreaded computations. If there are
updates concurrent with this method, the returned value is
not guaranteed to be the final value occurring before
the reset.
- Returns:
- the maximum
toString
public String toString()
- Returns the String representation of the
max()
.
- Overrides:
toString
in class Object
- Returns:
- the String representation of the
max()
doubleValue
public double doubleValue()
- Equivalent to
max()
.
- Specified by:
doubleValue
in class Number
- Returns:
- the max
longValue
public long longValue()
- Returns the
max()
as a long
after a
narrowing primitive conversion.
- Specified by:
longValue
in class Number
intValue
public int intValue()
- Returns the
max()
as an int
after a
narrowing primitive conversion.
- Specified by:
intValue
in class Number
floatValue
public float floatValue()
- Returns the
max()
as a float
after a narrowing primitive conversion.
- Specified by:
floatValue
in class Number
Copyright © 2009-2012. All Rights Reserved.