# Serialized Form

- ## Package java.util.concurrent

  - ### Class java.util.concurrent.ArrayBlockingQueue

    class ArrayBlockingQueue extends AbstractQueue<E> implements Serializable
    serialVersionUID:
      -817911632652898426L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this queue from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `InvalidObjectException` - if invariants are violated
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Writes the queue to the stream whilst holding the locks to prevent broken invariants.
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

    - #### Serialized Fields

      - ##### count

            int count

        Number of elements in the queue

      - ##### items

            Object[] items

        The queued items

      - ##### lock

            ReentrantLock lock

        Main lock guarding all access

      - ##### notEmpty

            Condition notEmpty

        Condition for waiting takes

      - ##### notFull

            Condition notFull

        Condition for waiting puts

      - ##### putIndex

            int putIndex

        items index for next put, offer, or add

      - ##### takeIndex

            int takeIndex

        items index for next take, poll, peek or remove

  - ### Exception Class java.util.concurrent.BrokenBarrierException

    class BrokenBarrierException extends Exception implements Serializable
    serialVersionUID:
      7117394618823254244L

  - ### Exception Class java.util.concurrent.CancellationException

    class CancellationException extends IllegalStateException implements Serializable
    serialVersionUID:
      -9202173006928992231L

  - ### Exception Class java.util.concurrent.CompletionException

    class CompletionException extends RuntimeException implements Serializable
    serialVersionUID:
      7830266012832686185L

  - ### Class java.util.concurrent.ConcurrentHashMap

    class ConcurrentHashMap extends AbstractMap<K,V> implements Serializable
    serialVersionUID:
      7249069246763182397L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this map from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this map to a stream (that is, serializes it).
        Serial Data:
          the serialized fields, followed by the key (Object) and value (Object) for each key-value mapping, followed by a null pair. The key-value mappings are emitted in no particular order.
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

    - #### Serialization Overview

      - Serialized pseudo-fields, provided only for jdk7 compatibility.

    - #### Serialized Fields

      - ##### segmentMask

            int segmentMask

        Mask value for indexing into segments. The upper bits of a key's hash code are used to choose the segment.

      - ##### segmentShift

            int segmentShift

        Shift value for indexing within segments.

      - ##### segments

            java.util.concurrent.ConcurrentHashMap.Segment[] segments

        The segments, each of which is a specialized hash table.

  - ### Class java.util.concurrent.ConcurrentHashMap.KeySetView

    class KeySetView extends java.util.concurrent.ConcurrentHashMap.CollectionView<K,V,K> implements Serializable
    serialVersionUID:
      7249069246763182397L

    - #### Serialized Fields

      - ##### value

            V value

  - ### Class java.util.concurrent.ConcurrentLinkedDeque

    class ConcurrentLinkedDeque extends AbstractCollection<E> implements Serializable
    serialVersionUID:
      876323262645176354L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this deque from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this deque to a stream (that is, serializes it).
        Serial Data:
          All of the elements (each an `E`) in the proper order, followed by a null
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

  - ### Class java.util.concurrent.ConcurrentLinkedQueue

    class ConcurrentLinkedQueue extends AbstractQueue<E> implements Serializable
    serialVersionUID:
      196745693267521676L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this queue from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this queue to a stream (that is, serializes it).
        Serial Data:
          All of the elements (each an `E`) in the proper order, followed by a null
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

  - ### Class java.util.concurrent.ConcurrentSkipListMap

    class ConcurrentSkipListMap extends AbstractMap<K,V> implements Serializable
    serialVersionUID:
      -8627078645895051609L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this map from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this map to a stream (that is, serializes it).
        Serial Data:
          The key (Object) and value (Object) for each key-value mapping represented by the map, followed by `null`. The key-value mappings are emitted in key-order (as determined by the Comparator, or by the keys' natural ordering if no Comparator).
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

    - #### Serialized Fields

      - ##### comparator

            Comparator<? super K> comparator

        The comparator used to maintain order in this map, or null if using natural ordering. (Non-private to simplify access in nested classes.)

  - ### Class java.util.concurrent.ConcurrentSkipListMap.SubMap

    class SubMap extends AbstractMap<K,V> implements Serializable
    serialVersionUID:
      -7647078645895051609L

    - #### Serialized Fields

      - ##### hi

            K hi

        upper bound key, or null if to end

      - ##### hiInclusive

            boolean hiInclusive

        inclusion flag for hi

      - ##### isDescending

            boolean isDescending

        direction

      - ##### lo

            K lo

        lower bound key, or null if from start

      - ##### loInclusive

            boolean loInclusive

        inclusion flag for lo

      - ##### m

            ConcurrentSkipListMap<K,V> m

        Underlying map

  - ### Class java.util.concurrent.ConcurrentSkipListSet

    class ConcurrentSkipListSet extends AbstractSet<E> implements Serializable
    serialVersionUID:
      -2479143111061671589L

    - #### Serialized Fields

      - ##### m

            ConcurrentNavigableMap<E,Object> m

        The underlying map. Uses Boolean.TRUE as value for each element. This field is declared final for the sake of thread safety, which entails some ugliness in clone().

  - ### Class java.util.concurrent.CopyOnWriteArrayList

    class CopyOnWriteArrayList extends Object implements Serializable
    serialVersionUID:
      8673264195747942595L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this list from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this list to a stream (that is, serializes it).
        Serial Data:
          The length of the array backing the list is emitted (int), followed by all of its elements (each an Object) in the proper order.
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

  - ### Class java.util.concurrent.CopyOnWriteArraySet

    class CopyOnWriteArraySet extends AbstractSet<E> implements Serializable
    serialVersionUID:
      5457747651344034263L

    - #### Serialized Fields

      - ##### al

            CopyOnWriteArrayList<E> al

  - ### Class java.util.concurrent.CountedCompleter

    class CountedCompleter extends ForkJoinTask<T> implements Serializable
    serialVersionUID:
      5232453752276485070L

    - #### Serialized Fields

      - ##### completer

            CountedCompleter<?> completer

        This task's completer, or null if none

      - ##### pending

            int pending

        The number of pending tasks until completion

  - ### Exception Class java.util.concurrent.ExecutionException

    class ExecutionException extends Exception implements Serializable
    serialVersionUID:
      7830266012832686185L

  - ### Class java.util.concurrent.ForkJoinTask

    class ForkJoinTask extends Object implements Serializable
    serialVersionUID:
      -7721805057305804111L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this task from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this task to a stream (that is, serializes it).
        Serial Data:
          the current run status and the exception thrown during execution, or `null` if none
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

    - #### Serialized Fields

      - ##### status

            int status

  - ### Class java.util.concurrent.LinkedBlockingDeque

    class LinkedBlockingDeque extends AbstractQueue<E> implements Serializable
    serialVersionUID:
      -387911632671998426L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this deque from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this deque to a stream (that is, serializes it).
        Serial Data:
          The capacity (int), followed by elements (each an `Object`) in the proper order, followed by a null
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

    - #### Serialized Fields

      - ##### capacity

            int capacity

        Maximum number of items in the deque

      - ##### lock

            ReentrantLock lock

        Main lock guarding all access

      - ##### notEmpty

            Condition notEmpty

        Condition for waiting takes

      - ##### notFull

            Condition notFull

        Condition for waiting puts

  - ### Class java.util.concurrent.LinkedBlockingQueue

    class LinkedBlockingQueue extends AbstractQueue<E> implements Serializable
    serialVersionUID:
      -6903933977591709194L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this queue from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this queue to a stream (that is, serializes it).
        Serial Data:
          The capacity is emitted (int), followed by all of its elements (each an `Object`) in the proper order, followed by a null
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

    - #### Serialized Fields

      - ##### capacity

            int capacity

        The capacity bound, or Integer.MAX_VALUE if none

      - ##### count

            AtomicInteger count

        Current number of elements

      - ##### notEmpty

            Condition notEmpty

        Wait queue for waiting takes

      - ##### notFull

            Condition notFull

        Wait queue for waiting puts

      - ##### putLock

            ReentrantLock putLock

        Lock held by put, offer, etc

      - ##### takeLock

            ReentrantLock takeLock

        Lock held by take, poll, etc

  - ### Class java.util.concurrent.LinkedTransferQueue

    class LinkedTransferQueue extends AbstractQueue<E> implements Serializable
    serialVersionUID:
      -3223113410248163686L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this queue from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this queue to a stream (that is, serializes it).
        Serial Data:
          All of the elements (each an `E`) in the proper order, followed by a null
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

  - ### Class java.util.concurrent.PriorityBlockingQueue

    class PriorityBlockingQueue extends AbstractQueue<E> implements Serializable
    serialVersionUID:
      5595510919245408276L

    - #### Serialization Methods

      - ##### readObject

        private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
        Reconstitutes this queue from a stream (that is, deserializes it).
        Parameters:
          `s` - the stream
        Throws:
          `ClassNotFoundException` - if the class of a serialized object could not be found
          `IOException` - if an I/O error occurs

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this queue to a stream (that is, serializes it). For compatibility with previous version of this class, elements are first copied to a java.util.PriorityQueue, which is then serialized.
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

    - #### Serialized Fields

      - ##### lock

            ReentrantLock lock

        Lock used for all public operations.

      - ##### notEmpty

            Condition notEmpty

        Condition for blocking when empty.

      - ##### q

            PriorityQueue<E> q

        A plain PriorityQueue used only for serialization, to maintain compatibility with previous versions of this class. Non-null only during serialization/deserialization.

  - ### Class java.util.concurrent.RecursiveAction

    class RecursiveAction extends ForkJoinTask<Void> implements Serializable
    serialVersionUID:
      5232453952276485070L

  - ### Class java.util.concurrent.RecursiveTask

    class RecursiveTask extends ForkJoinTask<V> implements Serializable
    serialVersionUID:
      5232453952276485270L

    - #### Serialized Fields

      - ##### result

            V result

        The result of the computation.

  - ### Exception Class java.util.concurrent.RejectedExecutionException

    class RejectedExecutionException extends RuntimeException implements Serializable
    serialVersionUID:
      -375805702767069545L

  - ### Class java.util.concurrent.Semaphore

    class Semaphore extends Object implements Serializable
    serialVersionUID:
      -3222578661600680210L

    - #### Serialized Fields

      - ##### sync

            java.util.concurrent.Semaphore.Sync sync

        All mechanics via AbstractQueuedSynchronizer subclass

  - ### Exception Class java.util.concurrent.StructuredTaskScope.FailedExceptionPREVIEW

    class FailedException extends RuntimeException implements Serializable
    serialVersionUID:
      -1533055100078459923L

  - ### Exception Class java.util.concurrent.StructuredTaskScope.TimeoutExceptionPREVIEW

    class TimeoutException extends RuntimeException implements Serializable
    serialVersionUID:
      705788143955048766L

  - ### Exception Class java.util.concurrent.StructureViolationException

    class StructureViolationException extends RuntimeException implements Serializable
    serialVersionUID:
      -7705327650798235468L

  - ### Class java.util.concurrent.SynchronousQueue

    class SynchronousQueue extends AbstractQueue<E> implements Serializable
    serialVersionUID:
      -3223113410248163686L

    - #### Serialization Methods

      - ##### readResolve

        private Object readResolve()
        Replaces a deserialized SynchronousQueue with a fresh one with the associated fairness

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves this queue to a stream (that is, serializes it).
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

    - #### Serialized Fields

      - ##### qlock

            ReentrantLock qlock

      - ##### waitingConsumers

            java.util.concurrent.SynchronousQueue.WaitQueue waitingConsumers

      - ##### waitingProducers

            java.util.concurrent.SynchronousQueue.WaitQueue waitingProducers

  - ### Class java.util.concurrent.ThreadLocalRandom

    class ThreadLocalRandom extends Random implements Serializable
    serialVersionUID:
      -5851777807851030925L

    - #### Serialization Methods

      - ##### readResolve

        private Object readResolve()
        Returns the `current` thread's `ThreadLocalRandom`.

      - ##### writeObject

        private void writeObject(ObjectOutputStream s) throws IOException
        Saves the `ThreadLocalRandom` to a stream (that is, serializes it).
        Parameters:
          `s` - the stream
        Throws:
          `IOException` - if an I/O error occurs

    - #### Serialized Fields

      - ##### initialized

            boolean initialized

        always true

      - ##### rnd

            long rnd

        seed for random computations

  - ### Exception Class java.util.concurrent.TimeoutException

    class TimeoutException extends Exception implements Serializable
    serialVersionUID:
      1900926677490660714L