rt
希望大家把自己用的都贴出来对比一下

解决方案 »

  1.   

    developerWorks有一个 贴出来做个引子吧
    public class WorkQueue
    {
        private final int nThreads;
        private final PoolWorker[] threads;
        private final LinkedList queue;    public WorkQueue(int nThreads)
        {
            this.nThreads = nThreads;
            queue = new LinkedList();
            threads = new PoolWorker[nThreads];        for (int i=0; i<nThreads; i++) {
                threads[i] = new PoolWorker();
                threads[i].start();
            }
        }    public void execute(Runnable r) {
            synchronized(queue) {
                queue.addLast(r);
                queue.notify();
            }
        }    private class PoolWorker extends Thread {
            public void run() {
                Runnable r;            while (true) {
                    synchronized(queue) {
                        while (queue.isEmpty()) {
                            try
                            {
                                queue.wait();
                            }
                            catch (InterruptedException ignored)
                            {
                            }
                        }                    r = (Runnable) queue.removeFirst();
                    }                // If we don't catch RuntimeException, 
                    // the pool could leak threads
                    try {
                        r.run();
                    }
                    catch (RuntimeException e) {
                        // You might want to log something here
                    }
                }
            }
        }
    }
      

  2.   


    jdk1.5里的java.util.concurrent.ThreadPoolExecutor 非常好用。