downloadsにはCSVへのリンクが張られていますが、現在はsvnでの管理に変更されています。
下記リンクからソースへアクセスできます。
http://svn.apache.org/viewvc/jakarta/commons/dormant/threadpool/trunk/
jarファイルは作成されていないようなので、私が作成したjarをアップしておきます。
また、commons-loggingに依存していますので、こちらのURLからダウンロードして
クラスパスを追加してください。
http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi
サンプルコード
MainProcess.java
import org.apache.commons.threadpool.*; public class MainProcess { public static void main(String[] args){ //プールするオブジェクトの数を指定 ThreadPool threadPool = new DefaultThreadPool(5); for (int i = 0; i < 10; i++) { HeavyProcess heavy = new HeavyProcess("process " + i); //スレッドプールに生成したクラスを渡す。 threadPool.invokeLater(heavy); } System.out.println("main process finish!"); } }
HeavyProcess.java
public class HeavyProcess implements Runnable { private String processName = ""; //コンストラクタで自分の名前を取得 public HeavyProcess(String processName){ this.processName = processName; } //1秒まって、自分の名前を報告 public void run() { try { Thread.sleep(1000); System.out.println(processName + " finish!"); } catch(Exception e) { e.printStackTrace(); } } }
実行結果
main process finish! process 0 finish! process 1 finish! process 2 finish! process 3 finish! process 4 finish! process 5 finish! process 6 finish! process 7 finish! process 8 finish! process 9 finish!