[バージョン]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 の説明からは読み取りきれず悩んでいます。