View Javadoc

1   /*
2    * This file is part of Domingo
3    * an Open Source Java-API to Lotus Notes/Domino
4    * hosted at http://domingo.sourceforge.net
5    *
6    * Copyright (c) 2003-2007 Beck et al. projects GmbH Munich, Germany (http://www.bea.de)
7    *
8    * This library is free software; you can redistribute it and/or
9    * modify it under the terms of the GNU Lesser General Public
10   * License as published by the Free Software Foundation; either
11   * version 2.1 of the License, or (at your option) any later version.
12   *
13   * This library is distributed in the hope that it will be useful,
14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16   * Lesser General Public License for more details.
17   *
18   * You should have received a copy of the GNU Lesser General Public
19   * License along with this library; if not, write to the Free Software
20   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21   */
22  
23  package de.bea.domingo.threadpool;
24  
25  /***
26   * An interface representing a resizable thread pool which allows
27   * asynchronous dispatching of Runnable tasks. It is the responsibility
28   * of the Runnable task to handle exceptions gracefully. Any non handled
29   * exception will typically just be logged.
30   * Though a ThreadPool implementation could have some custom Exception handler
31   *
32   * @author <a href="mailto:kriede@users.sourceforge.net">Kurt Riede</a>
33   */
34  public interface ThreadPool {
35  
36      /***
37       * Dispatch a new task onto this pool
38       * to be invoked asynchronously later.
39       *
40       * @param task the task to invoke
41       */
42      void invokeLater(Runnable task);
43  
44      /***
45       * Stops the pool.
46       */
47      void stop();
48  
49      /***
50       * Resize the thread pool.
51       *
52       * @param newSize new number of threads in the thread pool
53       * @throws ThreadPoolException if any error occurs during starting threads
54       */
55      void resize(int newSize) throws ThreadPoolException;
56  }