2010-12-21 5 views
0

私は、Callableを実装するMyThreadクラスを持っています<String>。クラスには、ブロッキングキューなどのパラメータを取るコンストラクタがあります。私のメインクラスでは、このクラスMyThreadを新しいブロッキングキューとその他のパラメータでインスタンス化します。また、私は2つのマップを保持しています.1つはMyThread参照をキーとしてユニークなパラメータの1つで保持し、もう1つは同じユニークキーでキュー参照をブロックすることです。ThreadLocal - コンストラクタで値を設定する必要がありますか?

この処理中、ハッシュマップからこのブロックキューを取得し、カスタムメッセージを追加して、対応するMyThreadインスタンスを取得し、ThreadPoolTask​​Executor(Springバージョン)に送信します。

私が理解している限り、各スレッドは、構築中にそれらを渡し、後でThreadPoolTask​​Executor.submit(myThreadObj)を使用してスレッドを作成するのと同様に、独自の値のコピー(キューなどのブロック)を取得する必要があります。このシナリオでThreadLocalを使用する必要があるかどうか、誰かがそれが真実かどうかを確認できるかどうか疑問に思っていました。これまでのテストでは問題は発生しませんでしたが、負荷テストをまだやっていません。

ありがとうございます。

答えて

6

あなたは効果的にThreadLocalを再発明しました。楽しい!

関連する問題