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!