Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jboss.util
Class WorkerQueue

    java.lang.Object
      org.jboss.util.WorkerQueue

Direct Known Subclasses:
  TimerQueue

public class WorkerQueue
extends Object

Class that queues `Executable` jobs that are executed sequentially by a single thread.

Version:
  $Revision: 1.1 $
Author:
  Simone Bordet
See Also:
  `Executable`

Nested Class Summary
`protected class` | `WorkerQueue.QueueLoop` Class that loops getting the next job to be executed and then executing it, in the worker thread.

Field Summary
`protected Thread` | `m_queueThread` The thread that runs the Executable jobs

Constructor Summary
`WorkerQueue()` Creates a new worker queue with default thread name of "Worker Thread"
`WorkerQueue(String threadName)` Creates a new worker queue with the specified thread name
`WorkerQueue(String threadName, boolean isDaemon)` Creates a new worker queue with the specified thread name and daemon mode flag

Method Summary
`protected void` | `clear()` Clears the running thread after the queue has been stopped.
`protected Runnable` | `createQueueLoop()` Creates the loop that will get the next job and process it.
`protected Executable` | `getJob()` Called by this class, this method checks if the queue is empty; if it is, then waits, else returns the current job.
`protected Executable` | `getJobImpl()` Never call this method, only override in subclasses to perform job getting in a specific way, normally tied to the data structure holding the jobs.
`protected boolean` | `isInterrupted()` Returns whether the worker thread has been interrupted.
`void` | `putJob(Executable job)` Called by a thread that is not the WorkerQueue thread, this method queues the job and, if necessary, wakes up this worker queue that is waiting in `getJob()`.
`protected void` | `putJobImpl(Executable job)` Never call this method, only override in subclasses to perform job adding in a specific way, normally tied to the data structure holding the jobs.
`void` | `start()` Starts the worker queue.
`void` | `stop()` Stops nicely the worker queue.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### m_queueThread

    protected Thread m_queueThread

  The thread that runs the Executable jobs

Constructor Detail

### WorkerQueue

    public WorkerQueue()

  Creates a new worker queue with default thread name of "Worker Thread"

### WorkerQueue

    public WorkerQueue(String threadName)

  Creates a new worker queue with the specified thread name

### WorkerQueue

    public WorkerQueue(String threadName,
                       boolean isDaemon)

  Creates a new worker queue with the specified thread name and daemon mode flag

Method Detail

### start

    public void start()

  Starts the worker queue.

  See Also:
    `stop()`

### stop

    public void stop()

  Stops nicely the worker queue.
  After this call trying to put a new job will result in a InterruptedException to be thrown. The jobs queued before and not yet processed are processed until the queue is empty, then this worker queue is cleared.

  See Also:
    `clear()`, `start()`, `isInterrupted()`

### putJob

    public void putJob(Executable job)

  Called by a thread that is not the WorkerQueue thread, this method queues the job and, if necessary, wakes up this worker queue that is waiting in `getJob()`.

### isInterrupted

    protected boolean isInterrupted()

  Returns whether the worker thread has been interrupted.
  When this method returns true, it is not possible to put new jobs in the queue and the already present jobs are executed and removed from the queue, then the thread exits.

  See Also:
    `stop()`

### getJob

    protected Executable getJob()
                         throws InterruptedException

  Called by this class, this method checks if the queue is empty; if it is, then waits, else returns the current job.

  Throws:
    `InterruptedException`
  See Also:
    `putJob(org.jboss.util.Executable)`

### getJobImpl

    protected Executable getJobImpl()
                             throws InterruptedException

  Never call this method, only override in subclasses to perform job getting in a specific way, normally tied to the data structure holding the jobs.

  Throws:
    `InterruptedException`

### putJobImpl

    protected void putJobImpl(Executable job)

  Never call this method, only override in subclasses to perform job adding in a specific way, normally tied to the data structure holding the jobs.

### clear

    protected void clear()

  Clears the running thread after the queue has been stopped.
  After this call, this worker queue is unusable and can be garbaged.

### createQueueLoop

    protected Runnable createQueueLoop()

  Creates the loop that will get the next job and process it.
  Override in subclasses to create a custom loop.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002 JBoss Group, LLC. All Rights Reserved.