view src/EDU/oswego/cs/dl/util/concurrent/ThreadedExecutor.java @ 18:4580bb12db30

Separate command execution from command logging.
author Dan Creswell <dan.creswell@gmail.com>
date Sun, 05 Jul 2009 16:26:25 +0100
parents 3dc0c5604566
children
line wrap: on
line source

/*
  File: ThreadedExecutor.java

  Originally written by Doug Lea and released into the public domain.
  This may be used for any purposes whatsoever without acknowledgment.
  Thanks for the assistance and support of Sun Microsystems Labs,
  and everyone contributing, testing, and using this code.

  History:
  Date       Who                What
  21Jun1998  dl               Create public version
  28aug1998  dl               factored out ThreadFactoryUser
*/

package EDU.oswego.cs.dl.util.concurrent;

/**
 * 
 * An implementation of Executor that creates a new
 * Thread that invokes the run method of the supplied command.
 * 
 * <p>[<a href="http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html"> Introduction to this package. </a>]
 **/
public class ThreadedExecutor extends ThreadFactoryUser implements Executor {

  /** 
   * Execute the given command in a new thread.
   **/
  public synchronized void execute(Runnable command) throws InterruptedException {
    if (Thread.interrupted()) 
      throw new InterruptedException();

    Thread thread = getThreadFactory().newThread(command);
    thread.start();
  }
}