から最初の5つの要素、私は私のmultithreaded
ENVでVector
を持っていると私はthreadpool
ベクトル
に渡すために、その最初の5つの要素を取得する必要がありますを取得します。これを回避するためのベストプラクティスはありますか? (java utilクラスを使用していることを意味します)
ブロック内で実行でき、最初の5つの要素が見つかるまでループします。私はそれを行う正しい方法であると思っています。
お願いします。
UPDATED SECTION ------
私は解決する必要が私の実際の問題を見つけてください。
クラスAは、ベクターがあります
クラスBが延びる
myOwnThreadPool
を有することになる(優先順位に従ってソートする。これはheigh頻度で更新されます。私は、最初の5つの要素を取得する必要があります)java.util.ThreadPoolExecutor
とそれをオーバーライドするメソッドafterExecute
(プールサイズは5になります)クラスAは、ベクトルから最初の5つの要素を取得し、クラスBプールに送信して処理します。
afterExecute
方法は、一つのスレッドが、私は(最も優先度クラスA/IN)vector
から最初の最も要素を選択し、処理するためにプールに送信し返されていることを通知されると。
私の質問は、皆さんにとってより良いアイデアを与えると思います。
ご回答ありがとうございました。ガイダンスやその他のご提案は大歓迎です。
List five = myVector.subList(0, 5);
これは、要素のコピーは、ベクターのみへのビューを構築することはありません。
それはまだ修正されてますか?サイズが5を下回るかもしれませんか? –
'Vector'はスレッドセーフです..あなたの懸念事項は何ですか? –
@LouisWasserman - それは5またはいくつかの設定可能な整数になります。 – Sam