groovyx.gpars.scheduler
Class FJPool

java.lang.Object
  extended by groovyx.gpars.scheduler.FJPool
All Implemented Interfaces:
Pool

public class FJPool
extends java.lang.Object
implements Pool

Represents the actors' thread pool, which performs tasks on behalf of the actors. Uses a ForkJoinPool from JSR-166y The actors' thread pool size defaults to the n + 1, where n is the number of processors/cores available on the machine. The VM parameter -Dgpars.poolsize can be used the configure the default size of the actors' thread pool. The resize() and resetDefaultSize() methods can be used to configure size of the thread pool at runtime.

Author:
Vaclav Pech Date: Feb 27, 2009

Field Summary
private  int configuredPoolSize
           
private static long DEFAULT_SHUTDOWN_TIMEOUT
           
protected  jsr166y.ForkJoinPool pool
           
 
Fields inherited from interface groovyx.gpars.scheduler.Pool
POOL_SIZE_MUST_BE_A_POSITIVE_NUMBER, UNCAUGHT_EXCEPTION_OCCURRED_IN_ACTOR_POOL
 
Constructor Summary
FJPool()
          Creates the pool with default number of threads.
FJPool(jsr166y.ForkJoinPool pool)
          Creates the pool wrapping the provided ForkJoinPool
FJPool(int configuredPoolSize)
          Creates the pool with specified number of threads.
 
Method Summary
private static jsr166y.ForkJoinPool createPool(int poolSize)
          Creates a fork/join pool of given size.
 void execute(java.lang.Runnable task)
          schedules a new task for processing with the pool
protected  int getConfiguredPoolSize()
           
 jsr166y.ForkJoinPool getForkJoinPool()
          Retrieves the internal executor service.
 int getPoolSize()
          Retrieves the current thread pool size
 void resetDefaultSize()
          Sets the pool size to the default
 void resize(int poolSize)
          Resizes the thread pool to the specified value
 void shutdown()
          Gently stops the pool
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pool

protected final jsr166y.ForkJoinPool pool

configuredPoolSize

private final int configuredPoolSize

DEFAULT_SHUTDOWN_TIMEOUT

private static final long DEFAULT_SHUTDOWN_TIMEOUT
See Also:
Constant Field Values
Constructor Detail

FJPool

public FJPool()
Creates the pool with default number of threads.


FJPool

public FJPool(int configuredPoolSize)
Creates the pool with specified number of threads.

Parameters:
configuredPoolSize - The required size of the pool

FJPool

public FJPool(jsr166y.ForkJoinPool pool)
Creates the pool wrapping the provided ForkJoinPool

Parameters:
pool - The ForkJoinPool instance to wrap
Method Detail

createPool

private static jsr166y.ForkJoinPool createPool(int poolSize)
Creates a fork/join pool of given size. Each thread will have the uncaught exception handler set to print the unhandled exception to standard error output.

Parameters:
poolSize - The required pool size @return The created thread pool
Returns:
The newly created thread pool

resize

public final void resize(int poolSize)
Resizes the thread pool to the specified value

Specified by:
resize in interface Pool
Parameters:
poolSize - The new pool size

resetDefaultSize

public final void resetDefaultSize()
Sets the pool size to the default

Specified by:
resetDefaultSize in interface Pool

getPoolSize

public int getPoolSize()
Retrieves the current thread pool size

Specified by:
getPoolSize in interface Pool
Returns:
The pool size

execute

public void execute(java.lang.Runnable task)
schedules a new task for processing with the pool

Specified by:
execute in interface Pool
Parameters:
task - The task to schedule

getForkJoinPool

public final jsr166y.ForkJoinPool getForkJoinPool()
Retrieves the internal executor service.

Returns:
The underlying thread pool

shutdown

public final void shutdown()
Gently stops the pool

Specified by:
shutdown in interface Pool

getConfiguredPoolSize

protected final int getConfiguredPoolSize()

Copyright © 2008–2012 Václav Pech. All Rights Reserved.