Documentation of 'edu.rit.pj.reduction.SharedObjectArray' Java class
SharedObjectArray
edu.rit.pj.reduction

Class SharedObjectArray<T>

  • Type Parameters:
    T - Object data type.


    public class SharedObjectArray<T>
    extends java.lang.Object
    Class SharedObjectArray provides an array reduction variable with elements of an object type.

    Class SharedObjectArray is multiple thread safe. The methods use lock-free atomic compare-and-set.

    Note: Class SharedObjectArray is implemented using class java.util.concurrent.atomic.AtomicReferenceArray.

    • Constructor Summary

      Constructors 
      Constructor and Description
      SharedObjectArray(int len)
      Construct a new object array reduction variable with the given length.
      SharedObjectArray(T[] array)
      Construct a new object array reduction variable whose elements are copied from the given array.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      boolean compareAndSet(int i, T expect, T update)
      Atomically set this array reduction variable at the given index to the given updated value if the current value equals the expected value.
      T get(int i)
      Returns this array reduction variable's current value at the given index.
      T getAndSet(int i, T value)
      Set this array reduction variable at the given index to the given value and return the previous value.
      int length()
      Returns this array reduction variable's length.
      void reduce(int dstoff, T[] src, int srcoff, int len, ObjectOp<T> op)
      Combine a portion of this array reduction variable with a portion of the given array using the given operation.
      T reduce(int i, T value, ObjectOp<T> op)
      Combine this array reduction variable at the given index with the given value using the given operation.
      void reduce(T[] src, ObjectOp<T> op)
      Combine this array reduction variable with the given array using the given operation.
      void set(int i, T value)
      Set this array reduction variable at the given index to the given value.
      java.lang.String toString()
      Returns a string version of this array reduction variable.
      boolean weakCompareAndSet(int i, T expect, T update)
      Atomically set this array reduction variable at the given index to the given updated value if the current value equals the expected value.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • SharedObjectArray

        public SharedObjectArray(int len)
        Construct a new object array reduction variable with the given length. Each array element is initially null.
        Parameters:
        len - Length.
        Throws:
        java.lang.NegativeArraySizeException - (unchecked exception) Thrown if len < 0.
      • SharedObjectArray

        public SharedObjectArray(T[] array)
        Construct a new object array reduction variable whose elements are copied from the given array.
        Parameters:
        array - Array to copy.
        Throws:
        java.lang.NullPointerException - (unchecked exception) Thrown if array is null.
    • Method Detail

      • length

        public int length()
        Returns this array reduction variable's length.
        Returns:
        Length.
      • get

        public T get(int i)
        Returns this array reduction variable's current value at the given index.
        Parameters:
        i - Index.
        Returns:
        Current value.
      • set

        public void set(int i,
                        T value)
        Set this array reduction variable at the given index to the given value.
        Parameters:
        i - Index.
        value - New value.
      • getAndSet

        public T getAndSet(int i,
                           T value)
        Set this array reduction variable at the given index to the given value and return the previous value.
        Parameters:
        i - Index.
        value - New value.
        Returns:
        Previous value.
      • compareAndSet

        public boolean compareAndSet(int i,
                                     T expect,
                                     T update)
        Atomically set this array reduction variable at the given index to the given updated value if the current value equals the expected value.
        Parameters:
        i - Index.
        expect - Expected value.
        update - Updated value.
        Returns:
        True if the update happened, false otherwise.
      • weakCompareAndSet

        public boolean weakCompareAndSet(int i,
                                         T expect,
                                         T update)
        Atomically set this array reduction variable at the given index to the given updated value if the current value equals the expected value. May fail spuriously.
        Parameters:
        i - Index.
        expect - Expected value.
        update - Updated value.
        Returns:
        True if the update happened, false otherwise.
      • reduce

        public T reduce(int i,
                        T value,
                        ObjectOp<T> op)
        Combine this array reduction variable at the given index with the given value using the given operation. (This array [i]) is set to (this array [i]) op (value), then (this array [i]) is returned.
        Parameters:
        i - Index.
        value - Value.
        op - Binary operation.
        Returns:
        (This array [i]) op (value).
      • reduce

        public void reduce(T[] src,
                           ObjectOp<T> op)
        Combine this array reduction variable with the given array using the given operation. For each index i from 0 to this array's length-1, (this array [i]) is set to (this array [i]) op (src[i]).

        The reduce() method is multiple thread safe on a per-element basis. Each individual array element is updated atomically, but the array as a whole is not updated atomically.

        Parameters:
        src - Source array.
        op - Binary operation.
        Throws:
        java.lang.NullPointerException - (unchecked exception) Thrown if src is null. Thrown if op is null.
        java.lang.IndexOutOfBoundsException - (unchecked exception) Thrown if any array index would be out of bounds.
      • reduce

        public void reduce(int dstoff,
                           T[] src,
                           int srcoff,
                           int len,
                           ObjectOp<T> op)
        Combine a portion of this array reduction variable with a portion of the given array using the given operation. For each index i from 0 to len-1, (this array [dstoff+i]) is set to (this array [dstoff+i]) op (src[srcoff+i]).

        The reduce() method is multiple thread safe on a per-element basis. Each individual array element is updated atomically, but the array as a whole is not updated atomically.

        Parameters:
        dstoff - Index of first element to update in this array.
        src - Source array.
        srcoff - Index of first element to update from in the source array.
        len - Number of array elements to update.
        op - Binary operation.
        Throws:
        java.lang.NullPointerException - (unchecked exception) Thrown if src is null. Thrown if op is null.
        java.lang.IndexOutOfBoundsException - (unchecked exception) Thrown if len < 0. Thrown if any array index would be out of bounds.
      • toString

        public java.lang.String toString()
        Returns a string version of this array reduction variable.
        Overrides:
        toString in class java.lang.Object
        Returns:
        String version.

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.