07/07/31 17:08:02
[バージョン]JDK1.5
[内容]
java.util.concurrent パッケージの ArrayBlockingQueue と LinkedBlockingQueue は
どのように使い分ければ良いのでしょうか。
URLリンク(java.sun.com)
URLリンク(java.sun.com)
実際にやろうとしていることは、ThreadPoolExecutor 生成でこれらを用い、
・実行されるスレッド数の上限を決めたい(例えば10)
・上限に達したら、submit された際キューに積まず例外で返したい
なのですが、この場合、
ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 10, 0L,
TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(10));
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
と言った感じで良いものなのでしょうか。
URLリンク(www-06.ibm.com)
を見ると、LinkedBlockingQueue だと取りあえず受けてしまう様にも見えるのですが、
Javadoc の説明からは読み取りきれず悩んでいます。