Package EDU.oswego.cs.dl.util.concurrent
Class SynchronizedLong
- java.lang.Object
-
- EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
-
- EDU.oswego.cs.dl.util.concurrent.SynchronizedLong
-
- All Implemented Interfaces:
Executor,java.lang.Cloneable,java.lang.Comparable
- Direct Known Subclasses:
WaitableLong
public class SynchronizedLong extends SynchronizedVariable implements java.lang.Comparable, java.lang.Cloneable
A class useful for offloading synch for long instance variables.
-
-
Field Summary
Fields Modifier and Type Field Description protected longvalue_-
Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
lock_
-
-
Constructor Summary
Constructors Constructor Description SynchronizedLong(long initialValue)Make a new SynchronizedLong with the given initial value, and using its own internal lock.SynchronizedLong(long initialValue, java.lang.Object lock)Make a new SynchronizedLong with the given initial value, and using the supplied lock.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description longadd(long amount)Add amount to value (i.e., set value += amount)longand(long b)Set value to value & b.booleancommit(long assumedValue, long newValue)Set value to newValue only if it is currently assumedValue.intcompareTo(long other)intcompareTo(SynchronizedLong other)intcompareTo(java.lang.Object other)longcomplement()Set the value to its complementlongdecrement()Decrement the value.longdivide(long factor)Divide value by factor (i.e., set value /= factor)booleanequals(java.lang.Object other)longget()Return the current valueinthashCode()longincrement()Increment the value.longmultiply(long factor)Multiply value by factor (i.e., set value *= factor)longnegate()Set the value to the negative of its old valuelongor(long b)Set value to value | b.longset(long newValue)Set to newValue.longsubtract(long amount)Subtract amount from value (i.e., set value -= amount)longswap(SynchronizedLong other)Atomically swap values with another SynchronizedLong.java.lang.StringtoString()longxor(long b)Set value to value ^ b.-
Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
execute, getLock
-
-
-
-
Constructor Detail
-
SynchronizedLong
public SynchronizedLong(long initialValue)
Make a new SynchronizedLong with the given initial value, and using its own internal lock.
-
SynchronizedLong
public SynchronizedLong(long initialValue, java.lang.Object lock)Make a new SynchronizedLong with the given initial value, and using the supplied lock.
-
-
Method Detail
-
get
public final long get()
Return the current value
-
set
public long set(long newValue)
Set to newValue.- Returns:
- the old value
-
commit
public boolean commit(long assumedValue, long newValue)Set value to newValue only if it is currently assumedValue.- Returns:
- true if successful
-
swap
public long swap(SynchronizedLong other)
Atomically swap values with another SynchronizedLong. Uses identityHashCode to avoid deadlock when two SynchronizedLongs attempt to simultaneously swap with each other.- Returns:
- the new value
-
increment
public long increment()
Increment the value.- Returns:
- the new value
-
decrement
public long decrement()
Decrement the value.- Returns:
- the new value
-
add
public long add(long amount)
Add amount to value (i.e., set value += amount)- Returns:
- the new value
-
subtract
public long subtract(long amount)
Subtract amount from value (i.e., set value -= amount)- Returns:
- the new value
-
multiply
public long multiply(long factor)
Multiply value by factor (i.e., set value *= factor)- Returns:
- the new value
-
divide
public long divide(long factor)
Divide value by factor (i.e., set value /= factor)- Returns:
- the new value
-
negate
public long negate()
Set the value to the negative of its old value- Returns:
- the new value
-
complement
public long complement()
Set the value to its complement- Returns:
- the new value
-
and
public long and(long b)
Set value to value & b.- Returns:
- the new value
-
or
public long or(long b)
Set value to value | b.- Returns:
- the new value
-
xor
public long xor(long b)
Set value to value ^ b.- Returns:
- the new value
-
compareTo
public int compareTo(long other)
-
compareTo
public int compareTo(SynchronizedLong 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
-
-