案例需求:要開發的項目是一個IT問答平台,其中用戶發布問題后,需要給平台上所有選了該問題類別的郵箱中各發一份郵件。

分析:這個時候就必須用到多線程了,因為用戶發布問題和給其他用戶發郵件可以說是兩個相互獨立的步驟,如果讓主程序一行一行執行的話,那如果發郵件的人很多的話,用戶發一個問題要等很長時間頁面才會響應,這個肯定是不能容忍的。但是用普通new一個線程,然后.start的話會出現大問題,很有可能服務器會崩掉,線程不能復用。

-
ExecutorService pool = Executors.newCachedThreadPool();
-
SendTwoEmailTools st= new SendTwoEmailTools();//你的線程類
-
Thread thread = new Thread(st);
-
//將線程放入池中進行執行
-
pool.execute(thread);
-
//關閉線程池
-
pool.shutdown();
這樣就比較好的解決問題了。