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

public class SynchronizedChar extends SynchronizedVariable implements Comparable, Cloneable
A class useful for offloading synch for char instance variables.

[ Introduction to this package. ]

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected char
     

    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, Object lock)
    Make a new SynchronizedChar with the given initial value, and using the supplied lock.
  • Method Summary

    Modifier and Type
    Method
    Description
    char
    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
     
    int
     
    char
    divide(char factor)
    Divide value by factor (i.e., set value /= factor)
    boolean
    equals(Object other)
     
    final char
    get()
    Return the current value
    int
     
    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
    Atomically swap values with another SynchronizedChar.
     

    Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable

    execute, getLock

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 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

      public SynchronizedChar(char initialValue, Object lock)
      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

      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(Object other)
      Specified by:
      compareTo in interface Comparable
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object