Package EDU.oswego.cs.dl.util.concurrent
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 EDU.oswego.cs.dl.util.concurrent.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 TypeMethodDescriptionchar
add
(char amount) Add amount to value (i.e., set value += amount)boolean
commit
(char assumedValue, char newValue) Set value to newValue only if it is currently assumedValue.int
compareTo
(char other) int
compareTo
(SynchronizedChar other) int
char
divide
(char factor) Divide value by factor (i.e., set value /= factor)boolean
final char
get()
Return the current valueint
hashCode()
char
multiply
(char factor) Multiply value by factor (i.e., set value *= factor)char
set
(char newValue) Set to newValue.char
subtract
(char amount) Subtract amount from value (i.e., set value -= amount)char
swap
(SynchronizedChar other) Atomically swap values with another SynchronizedChar.toString()
Methods inherited from class EDU.oswego.cs.dl.util.concurrent.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:
compareTo
in interfaceComparable
-
equals
-
hashCode
public int hashCode() -
toString
-