- 78 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 17:08:02 ]
- [バージョン]JDK1.5
[内容] 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 の説明からは読み取りきれず悩んでいます。
|

|