Package EDU.oswego.cs.dl.util.concurrent
Class SynchronizedFloat
- java.lang.Object
-
- EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
-
- EDU.oswego.cs.dl.util.concurrent.SynchronizedFloat
-
- All Implemented Interfaces:
Executor,Cloneable,Comparable
- Direct Known Subclasses:
WaitableFloat
public class SynchronizedFloat extends SynchronizedVariable implements Comparable, Cloneable
A class useful for offloading synch for float instance variables.
-
-
Field Summary
Fields Modifier and Type Field Description protected floatvalue_-
Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
lock_
-
-
Constructor Summary
Constructors Constructor Description SynchronizedFloat(float initialValue)Make a new SynchronizedFloat with the given initial value, and using its own internal lock.SynchronizedFloat(float initialValue, Object lock)Make a new SynchronizedFloat with the given initial value, and using the supplied lock.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description floatadd(float amount)Add amount to value (i.e., set value += amount)booleancommit(float assumedValue, float newValue)Set value to newValue only if it is currently assumedValue.intcompareTo(float other)intcompareTo(SynchronizedFloat other)intcompareTo(Object other)floatdivide(float factor)Divide value by factor (i.e., set value /= factor)booleanequals(Object other)floatget()Return the current valueinthashCode()floatmultiply(float factor)Multiply value by factor (i.e., set value *= factor)floatset(float newValue)Set to newValue.floatsubtract(float amount)Subtract amount from value (i.e., set value -= amount)floatswap(SynchronizedFloat other)Atomically swap values with another SynchronizedFloat.StringtoString()-
Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
execute, getLock
-
-
-
-
Constructor Detail
-
SynchronizedFloat
public SynchronizedFloat(float initialValue)
Make a new SynchronizedFloat with the given initial value, and using its own internal lock.
-
SynchronizedFloat
public SynchronizedFloat(float initialValue, Object lock)Make a new SynchronizedFloat with the given initial value, and using the supplied lock.
-
-
Method Detail
-
get
public final float get()
Return the current value
-
set
public float set(float newValue)
Set to newValue.- Returns:
- the old value
-
commit
public boolean commit(float assumedValue, float newValue)Set value to newValue only if it is currently assumedValue.- Returns:
- true if successful
-
swap
public float swap(SynchronizedFloat other)
Atomically swap values with another SynchronizedFloat. Uses identityHashCode to avoid deadlock when two SynchronizedFloats 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.)- Returns:
- the new value
-
add
public float add(float amount)
Add amount to value (i.e., set value += amount)- Returns:
- the new value
-
subtract
public float subtract(float amount)
Subtract amount from value (i.e., set value -= amount)- Returns:
- the new value
-
multiply
public float multiply(float factor)
Multiply value by factor (i.e., set value *= factor)- Returns:
- the new value
-
divide
public float divide(float factor)
Divide value by factor (i.e., set value /= factor)- Returns:
- the new value
-
compareTo
public int compareTo(float other)
-
compareTo
public int compareTo(SynchronizedFloat other)
-
compareTo
public int compareTo(Object other)
- Specified by:
compareToin interfaceComparable
-
-