|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.lang.Number
edu.rit.pj.reduction.SharedDouble
public class SharedDouble
Class SharedDouble provides a reduction variable for a value of type double.
Class SharedDouble is multiple thread safe. The methods use lock-free atomic compare-and-set.
Note: Class SharedDouble is implemented using class java.util.concurrent.atomic.AtomicLong. The double value is stored as a long whose bit pattern is the same as the double value.
| Constructor Summary | |
|---|---|
SharedDouble()
Construct a new double reduction variable with the initial value 0. |
|
SharedDouble(double initialValue)
Construct a new double reduction variable with the given initial value. |
|
| Method Summary | |
|---|---|
double |
addAndGet(double value)
Add the given value to this reduction variable and return the new value. |
boolean |
compareAndSet(double expect,
double update)
Atomically set this reduction variable to the given updated value if the current value equals the expected value. |
double |
decrementAndGet()
Subtract one from this reduction variable and return the new value. |
double |
doubleValue()
Returns this reduction variable's current value converted to type double. |
float |
floatValue()
Returns this reduction variable's current value converted to type float. |
double |
get()
Returns this reduction variable's current value. |
double |
getAndAdd(double value)
Add the given value to this reduction variable and return the previous value. |
double |
getAndDecrement()
Subtract one from this reduction variable and return the previous value. |
double |
getAndIncrement()
Add one to this reduction variable and return the previous value. |
double |
getAndSet(double value)
Set this reduction variable to the given value and return the previous value. |
double |
incrementAndGet()
Add one to this reduction variable and return the new value. |
int |
intValue()
Returns this reduction variable's current value converted to type int. |
long |
longValue()
Returns this reduction variable's current value converted to type long. |
double |
reduce(double value,
DoubleOp op)
Combine this reduction variable with the given value using the given operation. |
void |
set(double value)
Set this reduction variable to the given value. |
String |
toString()
Returns a string version of this reduction variable. |
boolean |
weakCompareAndSet(double expect,
double update)
Atomically set this reduction variable to the given updated value if the current value equals the expected value. |
| Methods inherited from class java.lang.Number |
|---|
byteValue, shortValue |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public SharedDouble()
public SharedDouble(double initialValue)
initialValue - Initial value.| Method Detail |
|---|
public double get()
public void set(double value)
value - New value.public double getAndSet(double value)
value - New value.
public boolean compareAndSet(double expect,
double update)
expect - Expected value.update - Updated value.
public boolean weakCompareAndSet(double expect,
double update)
expect - Expected value.update - Updated value.
public double getAndIncrement()
public double getAndDecrement()
public double getAndAdd(double value)
value - Value to add.
public double incrementAndGet()
public double decrementAndGet()
public double addAndGet(double value)
value - Value to add.
public double reduce(double value,
DoubleOp op)
value - Value.op - Binary operation.
public String toString()
toString in class Objectpublic int intValue()
intValue in class Numberpublic long longValue()
longValue in class Numberpublic float floatValue()
floatValue in class Numberpublic double doubleValue()
doubleValue in class Number
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||