1 package org.apache.jcs.utils.threadpool;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import EDU.oswego.cs.dl.util.concurrent.Channel;
23 import EDU.oswego.cs.dl.util.concurrent.PooledExecutor;
24
25 /***
26 * This is simply a wrapper around the Pooled Excutor that allows clients to
27 * access the queue.
28 * <p>
29 * @author aaronsm
30 */
31 public class ThreadPool
32 {
33 /*** The worker */
34 private PooledExecutor pool = null;
35
36 /*** The queue */
37 private Channel queue = null;
38
39 /***
40 * Create the wrapper.
41 * <p>
42 * @param pool
43 * @param queue
44 */
45 public ThreadPool( PooledExecutor pool, Channel queue )
46 {
47 this.pool = pool;
48 this.queue = queue;
49 }
50
51 /***
52 * This is intended to give the client access to the PooledExecutor itself.
53 * <p>
54 * @return Returns the pool.
55 */
56 public PooledExecutor getPool()
57 {
58 return pool;
59 }
60
61 /***
62 * @return Returns the queue.
63 */
64 public Channel getQueue()
65 {
66 return queue;
67 }
68
69 /***
70 * Delegates execution to the pooled executor.
71 * <p>
72 * @param run
73 * @throws InterruptedException
74 */
75 public void execute( Runnable run )
76 throws InterruptedException
77 {
78 pool.execute( run );
79 }
80 }