【初心者】Java質問・相談スレッド104【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0078デフォルトの名無しさん
2007/07/31(火) 17:08:02[内容]
java.util.concurrent パッケージの ArrayBlockingQueue と LinkedBlockingQueue は
どのように使い分ければ良いのでしょうか。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/concurrent/ArrayBlockingQueue.html
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/concurrent/LinkedBlockingQueue.html
実際にやろうとしていることは、ThreadPoolExecutor 生成でこれらを用い、
・実行されるスレッド数の上限を決めたい(例えば10)
・上限に達したら、submit された際キューに積まず例外で返したい
なのですが、この場合、
ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 10, 0L,
TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(10));
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
と言った感じで良いものなのでしょうか。
ttp://www-06.ibm.com/jp/developerworks/java/040625/j_j-tiger06164.html
を見ると、LinkedBlockingQueue だと取りあえず受けてしまう様にも見えるのですが、
Javadoc の説明からは読み取りきれず悩んでいます。
■ このスレッドは過去ログ倉庫に格納されています