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
,java.lang.Cloneable
,java.lang.Comparable
- Direct Known Subclasses:
WaitableFloat
public class SynchronizedFloat extends SynchronizedVariable implements java.lang.Comparable, java.lang.Cloneable
A class useful for offloading synch for float instance variables.
-
-
Field Summary
Fields Modifier and Type Field Description protected float
value_
-
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, java.lang.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 float
add(float amount)
Add amount to value (i.e., set value += amount)boolean
commit(float assumedValue, float newValue)
Set value to newValue only if it is currently assumedValue.int
compareTo(float other)
int
compareTo(SynchronizedFloat other)
int
compareTo(java.lang.Object other)
float
divide(float factor)
Divide value by factor (i.e., set value /= factor)boolean
equals(java.lang.Object other)
float
get()
Return the current valueint
hashCode()
float
multiply(float factor)
Multiply value by factor (i.e., set value *= factor)float
set(float newValue)
Set to newValue.float
subtract(float amount)
Subtract amount from value (i.e., set value -= amount)float
swap(SynchronizedFloat other)
Atomically swap values with another SynchronizedFloat.java.lang.String
toString()
-
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, java.lang.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(java.lang.Object other)
- Specified by:
compareTo
in interfacejava.lang.Comparable
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-