站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > JBoss 4.0.1 sp1 common API Documentation 英文版文档

WorkerQueue (JBoss/Common API) - JBoss 4.0.1 sp1 common API Documentation 英文版文档


org.jboss.util
Class WorkerQueue

java.lang.Object
  extended byorg.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.



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