ThreadPool

ThreadPoolのプロジェクトサイト

downloadsにはCSVへのリンクが張られていますが、現在はsvnでの管理に変更されています。
下記リンクからソースへアクセスできます。

http://svn.apache.org/viewvc/jakarta/commons/dormant/threadpool/trunk/

jarファイルは作成されていないようなので、私が作成したjarをアップしておきます。

commons-threadpool-267404.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!



もどる