1. 程式人生 > 實用技巧 >關於執行緒池的執行緒複用

關於執行緒池的執行緒複用

之前接觸到執行緒池之後,對執行緒複用很感興趣。但是,執行緒執行完後就會銷燬,那麼執行緒的複用又是如何實現的呢?

最近在網上找了一下相關資料,發現了一篇文章講解的比較淺顯易懂,根據該文章的思路,自己自由發揮了一下,估計大概應該就是這麼個意思吧。

BlockingQueue<Runnable> runnableQueue = new ArrayBlockingQueue<Runnable>(100);
        Runnable target = new Runnable() {
            @Override
            public void
run() { for (;;) { if (!runnableQueue.isEmpty()) { Runnable runnable = runnableQueue.poll(); if (runnableQueue != null) { runnable.run(); } } } } }; Thread thread
= new Thread(target); runnableQueue.put(new Runnable() { @Override public void run() { System.out.println("first"); } }); runnableQueue.put(new Runnable() { @Override public void run() { System.out.println(
"second"); } }); thread.start(); runnableQueue.put(new Runnable() { @Override public void run() { System.out.println("third"); } });

Runnable被提交進任務佇列中,執行緒反覆檢測佇列中是否有可執行任務,若有則執行出隊操作,並在自己的run方法中呼叫任務的run方法。