View Javadoc

1   // ========================================================================
2   // Copyright (c) 2004-2009 Mort Bay Consulting Pty. Ltd.
3   // ------------------------------------------------------------------------
4   // All rights reserved. This program and the accompanying materials
5   // are made available under the terms of the Eclipse Public License v1.0
6   // and Apache License v2.0 which accompanies this distribution.
7   // The Eclipse Public License is available at 
8   // http://www.eclipse.org/legal/epl-v10.html
9   // The Apache License v2.0 is available at
10  // http://www.opensource.org/licenses/apache2.0.php
11  // You may elect to redistribute this code under either of these licenses. 
12  // ========================================================================
13  
14  package org.eclipse.jetty.util.thread;
15  
16  import org.eclipse.jetty.util.component.LifeCycle;
17  
18  /* ------------------------------------------------------------ */
19  /** ThreadPool.
20   * 
21   *
22   */
23  public interface ThreadPool
24  {
25      /* ------------------------------------------------------------ */
26      public abstract boolean dispatch(Runnable job);
27  
28      /* ------------------------------------------------------------ */
29      /**
30       * Blocks until the thread pool is {@link LifeCycle#stop stopped}.
31       */
32      public void join() throws InterruptedException;
33  
34      /* ------------------------------------------------------------ */
35      /**
36       * @return The total number of threads currently in the pool
37       */
38      public int getThreads();
39  
40      /* ------------------------------------------------------------ */
41      /**
42       * @return The number of idle threads in the pool
43       */
44      public int getIdleThreads();
45      
46      /* ------------------------------------------------------------ */
47      /**
48       * @return True if the pool is low on threads
49       */
50      public boolean isLowOnThreads();
51      
52  
53      /* ------------------------------------------------------------ */
54      /* ------------------------------------------------------------ */
55      public interface SizedThreadPool extends ThreadPool
56      {
57          public int getMinThreads();
58          public int getMaxThreads();
59          public void setMinThreads(int threads);
60          public void setMaxThreads(int threads);
61      }
62  }