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,java.lang.Cloneable,java.lang.Comparable
- Direct Known Subclasses:
WaitableChar
public class SynchronizedChar extends SynchronizedVariable implements java.lang.Comparable, java.lang.Cloneable
A class useful for offloading synch for char instance variables.
-
-
Field Summary
Fields Modifier and Type Field Description protected charvalue_-
Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
lock_
-
-
Constructor Summary
Constructors Constructor Description SynchronizedChar(char initialValue)Make a new SynchronizedChar with the given initial value, and using its own internal lock.SynchronizedChar(char initialValue, java.lang.Object lock)Make a new SynchronizedChar with the given initial value, and using the supplied lock.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description charadd(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)intcompareTo(java.lang.Object other)chardivide(char factor)Divide value by factor (i.e., set value /= factor)booleanequals(java.lang.Object other)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.java.lang.StringtoString()-
Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
execute, getLock
-
-
-
-
Constructor Detail
-
SynchronizedChar
public SynchronizedChar(char initialValue)
Make a new SynchronizedChar with the given initial value, and using its own internal lock.
-
SynchronizedChar
public SynchronizedChar(char initialValue, java.lang.Object lock)Make a new SynchronizedChar with the given initial value, and using the supplied lock.
-
-
Method Detail
-
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
public char swap(SynchronizedChar other)
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
public int compareTo(SynchronizedChar other)
-
compareTo
public int compareTo(java.lang.Object other)
- Specified by:
compareToin interfacejava.lang.Comparable
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-