EDU.oswego.cs.dl.util.concurrent
Class SynchronizedDouble
- Cloneable, Comparable, Executor
public class SynchronizedDouble
implements Comparable, Cloneable
SynchronizedDouble(double initialValue) - Make a new SynchronizedDouble with the given initial value,
and using its own internal lock.
|
SynchronizedDouble(double initialValue, Object lock) - Make a new SynchronizedDouble with the given initial value,
and using the supplied lock.
|
double | add(double amount) - Add amount to value (i.e., set value += amount)
|
boolean | commit(double assumedValue, double newValue) - Set value to newValue only if it is currently assumedValue.
|
int | compareTo(SynchronizedDouble other)
|
int | compareTo(Object other)
|
int | compareTo(double other)
|
double | divide(double factor) - Divide value by factor (i.e., set value /= factor)
|
boolean | equals(Object other)
|
double | get() - Return the current value
|
int | hashCode()
|
double | multiply(double factor) - Multiply value by factor (i.e., set value *= factor)
|
double | set(double newValue) - Set to newValue.
|
double | subtract(double amount) - Subtract amount from value (i.e., set value -= amount)
|
double | swap(SynchronizedDouble other) - Atomically swap values with another SynchronizedDouble.
|
String | toString()
|
value_
protected double value_
SynchronizedDouble
public SynchronizedDouble(double initialValue)
Make a new SynchronizedDouble with the given initial value,
and using its own internal lock.
SynchronizedDouble
public SynchronizedDouble(double initialValue,
Object lock)
Make a new SynchronizedDouble with the given initial value,
and using the supplied lock.
add
public double add(double amount)
Add amount to value (i.e., set value += amount)
- the new value
commit
public boolean commit(double assumedValue,
double newValue)
Set value to newValue only if it is currently assumedValue.
- true if successful
compareTo
public int compareTo(Object other)
compareTo
public int compareTo(double other)
divide
public double divide(double factor)
Divide value by factor (i.e., set value /= factor)
- the new value
equals
public boolean equals(Object other)
get
public final double get()
Return the current value
hashCode
public int hashCode()
multiply
public double multiply(double factor)
Multiply value by factor (i.e., set value *= factor)
- the new value
set
public double set(double newValue)
Set to newValue.
- the old value
subtract
public double subtract(double amount)
Subtract amount from value (i.e., set value -= amount)
- the new value
swap
public double swap(SynchronizedDouble other)
Atomically swap values with another SynchronizedDouble.
Uses identityHashCode to avoid deadlock when
two SynchronizedDoubles attempt to simultaneously swap with each other.
(Note: Ordering via identyHashCode is not strictly guaranteed
by the language specification to return unique, orderable
values, but in practice JVMs rely on them being unique.)
- the new value
toString
public String toString()