Class SynchronizedChar
java.lang.Object
EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
EDU.oswego.cs.dl.util.concurrent.SynchronizedChar
- All Implemented Interfaces:
Executor, Cloneable, Comparable
- Direct Known Subclasses:
WaitableChar
A class useful for offloading synch for char instance variables.
-
Field Summary
FieldsFields inherited from class SynchronizedVariable
lock_ -
Constructor Summary
ConstructorsConstructorDescriptionSynchronizedChar(char initialValue) Make a new SynchronizedChar with the given initial value, and using its own internal lock.SynchronizedChar(char initialValue, Object lock) Make a new SynchronizedChar with the given initial value, and using the supplied lock. -
Method Summary
Modifier and TypeMethodDescriptioncharadd(char amount) Add amount to value (i.e., set value += amount)booleancommit(char assumedValue, char newValue) Set value to newValue only if it is currently assumedValue.intcompareTo(char other) intcompareTo(SynchronizedChar other) intchardivide(char factor) Divide value by factor (i.e., set value /= factor)booleanfinal charget()Return the current valueinthashCode()charmultiply(char factor) Multiply value by factor (i.e., set value *= factor)charset(char newValue) Set to newValue.charsubtract(char amount) Subtract amount from value (i.e., set value -= amount)charswap(SynchronizedChar other) Atomically swap values with another SynchronizedChar.toString()Methods inherited from class SynchronizedVariable
execute, getLock
-
Field Details
-
value_
protected char value_
-
-
Constructor Details
-
SynchronizedChar
public SynchronizedChar(char initialValue) Make a new SynchronizedChar with the given initial value, and using its own internal lock. -
SynchronizedChar
Make a new SynchronizedChar with the given initial value, and using the supplied lock.
-
-
Method Details
-
get
public final char get()Return the current value -
set
public char set(char newValue) Set to newValue.- Returns:
- the old value
-
commit
public boolean commit(char assumedValue, char newValue) Set value to newValue only if it is currently assumedValue.- Returns:
- true if successful
-
swap
Atomically swap values with another SynchronizedChar. Uses identityHashCode to avoid deadlock when two SynchronizedChars 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 char add(char amount) Add amount to value (i.e., set value += amount)- Returns:
- the new value
-
subtract
public char subtract(char amount) Subtract amount from value (i.e., set value -= amount)- Returns:
- the new value
-
multiply
public char multiply(char factor) Multiply value by factor (i.e., set value *= factor)- Returns:
- the new value
-
divide
public char divide(char factor) Divide value by factor (i.e., set value /= factor)- Returns:
- the new value
-
compareTo
public int compareTo(char other) -
compareTo
-
compareTo
- Specified by:
compareToin interfaceComparable
-
equals
-
hashCode
-
toString
-