com.sun.grizzly.util
Class WorkerThreadImpl

java.lang.Object
  extended by java.lang.Thread
      extended by com.sun.grizzly.util.WorkerThread
          extended by com.sun.grizzly.util.WorkerThreadImpl
All Implemented Interfaces:
Runnable
Direct Known Subclasses:
HttpWorkerThread

public class WorkerThreadImpl
extends WorkerThread

Simple worker thread used for processing HTTP requests. All threads are synchronized using a ExecutorService object

Author:
Jean-Francois Arcand

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
static int DEFAULT_BYTE_BUFFER_SIZE
           
static ByteBufferFactory.ByteBufferType DEFAULT_BYTEBUFFER_TYPE
           
protected  ThreadAttachment threadAttachment
          The state/attributes on this WorkerThread.
 
Fields inherited from class com.sun.grizzly.util.WorkerThread
byteBuffer, inputBB, outputBB, sslEngine
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
WorkerThreadImpl(ExecutorService threadPool, String name)
          Create a Thread that will synchronizes/block on ExecutorService instance.
WorkerThreadImpl(ExecutorService threadPool, String name, int initialByteBufferSize)
          Create a Thread that will synchronizes/block on ExecutorService instance.
WorkerThreadImpl(ExecutorService threadPool, String name, Runnable runnable, int initialByteBufferSize)
          Create a Thread that will synchronizes/block on ExecutorService instance.
WorkerThreadImpl(Runnable runnable)
           
WorkerThreadImpl(String name, Runnable runnable)
           
WorkerThreadImpl(ThreadGroup threadGroup, Runnable runnable)
          Create a Thread that will synchronizes/block on ExecutorService instance.
WorkerThreadImpl(ThreadGroup threadGroup, Runnable runnable, int initialByteBufferSize)
          Create a Thread that will synchronizes/block on ExecutorService instance.
 
Method Summary
 void attach(ThreadAttachment threadAttachment)
          Attach the ThreadAttachment to this instance.
protected  void createByteBuffer(boolean force)
          Allocate a ByteBuffer if the current instance is null;
 ThreadAttachment detach()
          Detach the current set of attributes (state) associated with this instance.
 ThreadAttachment getAttachment()
          Get the current set of attributes (state) associated with this instance.
 ByteBufferFactory.ByteBufferType getByteBufferType()
          The ByteBufferType used to create the ByteBuffer associated with this object.
 Object getContext()
           
 int getInitialByteBufferSize()
           
 PendingIOhandler getPendingIOhandler()
          Used by selectionkey attachments to enqueue io events that will be executed in selectorhandler.postselect by worker threads instead of the selector thread.
protected  void processTask(Callable t)
          Processes the given task.
 void reset()
           
 void setByteBufferType(ByteBufferFactory.ByteBufferType byteBufferType)
          Set the ByteBufferType to use when creating the ByteBuffer associated with this object.
 void setContext(Object context)
           
 void setInitialByteBufferSize(int initialByteBufferSize)
           
 void setPendingIOhandler(PendingIOhandler pendingIOhandler)
          Used by selectionkey attachments to enqueue io events that will be executed in selectorhandler.postselect by worker threads instead of the selector thread.
 ThreadAttachment updateAttachment(int mode)
          Updates Thread associated attachment according to the passed mode.
 
Methods inherited from class com.sun.grizzly.util.WorkerThread
getByteBuffer, getInputBB, getOutputBB, getSSLEngine, setByteBuffer, setInputBB, setOutputBB, setSSLEngine
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, run, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_BYTE_BUFFER_SIZE

public static final int DEFAULT_BYTE_BUFFER_SIZE
See Also:
Constant Field Values

DEFAULT_BYTEBUFFER_TYPE

public static final ByteBufferFactory.ByteBufferType DEFAULT_BYTEBUFFER_TYPE

threadAttachment

protected ThreadAttachment threadAttachment
The state/attributes on this WorkerThread.

Constructor Detail

WorkerThreadImpl

public WorkerThreadImpl(ThreadGroup threadGroup,
                        Runnable runnable)
Create a Thread that will synchronizes/block on ExecutorService instance.

Parameters:
threadGroup - ThreadGroup
runnable - Runnable

WorkerThreadImpl

public WorkerThreadImpl(Runnable runnable)

WorkerThreadImpl

public WorkerThreadImpl(String name,
                        Runnable runnable)

WorkerThreadImpl

public WorkerThreadImpl(ThreadGroup threadGroup,
                        Runnable runnable,
                        int initialByteBufferSize)
Create a Thread that will synchronizes/block on ExecutorService instance.

Parameters:
threadGroup - ThreadGroup
runnable - Runnable
initialByteBufferSize - initial ByteBuffer size

WorkerThreadImpl

public WorkerThreadImpl(ExecutorService threadPool,
                        String name)
Create a Thread that will synchronizes/block on ExecutorService instance.

Parameters:
threadPool - ExecutorService
name - String

WorkerThreadImpl

public WorkerThreadImpl(ExecutorService threadPool,
                        String name,
                        int initialByteBufferSize)
Create a Thread that will synchronizes/block on ExecutorService instance.

Parameters:
threadPool - ExecutorService
name - String
initialByteBufferSize - initial ByteBuffer size

WorkerThreadImpl

public WorkerThreadImpl(ExecutorService threadPool,
                        String name,
                        Runnable runnable,
                        int initialByteBufferSize)
Create a Thread that will synchronizes/block on ExecutorService instance.

Parameters:
threadPool - ExecutorService
name - String
initialByteBufferSize - initial ByteBuffer size
Method Detail

createByteBuffer

protected void createByteBuffer(boolean force)
Allocate a ByteBuffer if the current instance is null;


updateAttachment

public ThreadAttachment updateAttachment(int mode)
Description copied from class: WorkerThread
Updates Thread associated attachment according to the passed mode.

Specified by:
updateAttachment in class WorkerThread
Returns:
updated ThreadAttachment

getAttachment

public ThreadAttachment getAttachment()
Description copied from class: WorkerThread
Get the current set of attributes (state) associated with this instance. Unlike detach(), this method doesn't clear the WorkerThread attributes.

Specified by:
getAttachment in class WorkerThread
Returns:
the Thread associated ThreadAttachment

detach

public ThreadAttachment detach()
Description copied from class: WorkerThread
Detach the current set of attributes (state) associated with this instance. Method will re-create all the ByteBuffers associated with this thread.

Specified by:
detach in class WorkerThread
Returns:
a new ThreadAttachment

attach

public void attach(ThreadAttachment threadAttachment)
Description copied from class: WorkerThread
Attach the ThreadAttachment to this instance. This will configure this Thread attributes like ByteBuffer, SSLEngine, etc.

Specified by:
attach in class WorkerThread

getByteBufferType

public ByteBufferFactory.ByteBufferType getByteBufferType()
The ByteBufferType used to create the ByteBuffer associated with this object.

Returns:
The ByteBufferType used to create the ByteBuffer associated with this object.

setByteBufferType

public void setByteBufferType(ByteBufferFactory.ByteBufferType byteBufferType)
Set the ByteBufferType to use when creating the ByteBuffer associated with this object.

Parameters:
byteBufferType - The ByteBuffer type.

getInitialByteBufferSize

public int getInitialByteBufferSize()

setInitialByteBufferSize

public void setInitialByteBufferSize(int initialByteBufferSize)

processTask

protected void processTask(Callable t)
                    throws Exception
Processes the given task.

Parameters:
t - the task to process
Throws:
Exception

getPendingIOhandler

public PendingIOhandler getPendingIOhandler()
Used by selectionkey attachments to enqueue io events that will be executed in selectorhandler.postselect by worker threads instead of the selector thread.


setPendingIOhandler

public void setPendingIOhandler(PendingIOhandler pendingIOhandler)
Used by selectionkey attachments to enqueue io events that will be executed in selectorhandler.postselect by worker threads instead of the selector thread.


getContext

public Object getContext()

setContext

public void setContext(Object context)

reset

public void reset()
Overrides:
reset in class WorkerThread


Copyright © 2012 Oracle Corporation. All Rights Reserved.