org.codehaus.gpars

groovyx.gpars.scheduler
[Java] Class DefaultPool

java.lang.Object
  groovyx.gpars.scheduler.DefaultPool
All Implemented Interfaces:
Pool

public class DefaultPool
extends java.lang.Object

Represents the actors' thread pool, which performs tasks on behalf of the actors. 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.

Authors:
Vaclav Pech Date: Feb 27, 2009


Field Summary
private static long SHUTDOWN_TIMEOUT

private java.util.concurrent.ThreadPoolExecutor pool

private static java.util.concurrent.atomic.AtomicLong threadCount

Unique counter for Actors' threads

 
Constructor Summary
DefaultPool()

Creates the pool with default number of daemon threads.

DefaultPool(boolean daemon)

Creates the pool with default number of threads.

DefaultPool(boolean daemon, int poolSize)

Creates the pool with specified number of threads.

DefaultPool(java.util.concurrent.ThreadPoolExecutor pool)

Creates the pool around the given executor service

 
Method Summary
private static java.util.concurrent.ThreadPoolExecutor createPool(boolean daemon, int poolSize)

Creates a fixed-thread pool of given size.

protected static java.lang.String createThreadName()

Created a JVM-unique name for Actors' threads.

void execute(java.lang.Runnable task)

schedules a new task for processing with the pool

java.util.concurrent.ExecutorService getExecutorService()

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
java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#wait(long, int), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

SHUTDOWN_TIMEOUT

private static final long SHUTDOWN_TIMEOUT


pool

private final java.util.concurrent.ThreadPoolExecutor pool


threadCount

private static final java.util.concurrent.atomic.AtomicLong threadCount
Unique counter for Actors' threads


 
Constructor Detail

DefaultPool

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


DefaultPool

public DefaultPool(boolean daemon)
Creates the pool with default number of threads.
Parameters:
daemon - Sets the daemon flag of threads in the pool.


DefaultPool

public DefaultPool(boolean daemon, int poolSize)
Creates the pool with specified number of threads.
Parameters:
daemon - Sets the daemon flag of threads in the pool.
poolSize - The required size of the pool


DefaultPool

public DefaultPool(java.util.concurrent.ThreadPoolExecutor pool)
Creates the pool around the given executor service
Parameters:
pool - The executor service to use


 
Method Detail

createPool

private static java.util.concurrent.ThreadPoolExecutor createPool(boolean daemon, int poolSize)
Creates a fixed-thread pool of given size. Each thread will have the uncaught exception handler set to print the unhandled exception to standard error output.
Parameters:
daemon - Sets the daemon flag of threads in the pool.
poolSize - The required pool size
Returns:
The created thread pool
The newly created thread pool


createThreadName

protected static java.lang.String createThreadName()
Created a JVM-unique name for Actors' threads.
Returns:
The name prefix


execute

@Override
public final void execute(java.lang.Runnable task)
schedules a new task for processing with the pool
Parameters:
task - The task to schedule


getExecutorService

public final java.util.concurrent.ExecutorService getExecutorService()
Retrieves the internal executor service.
Returns:
The underlying thread pool


getPoolSize

@Override
public int getPoolSize()
Retrieves the current thread pool size
Returns:
The pool size


resetDefaultSize

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


resize

@Override
public final void resize(int poolSize)
Resizes the thread pool to the specified value
Parameters:
poolSize - The new pool size


shutdown

@Override
public final void shutdown()
Gently stops the pool


 

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