java.lang.ThreadLocal
* スレッド毎の値を保持するためのクラス => 「スレッド毎の値を保持」=「他のスレッドがアクセスすることはない」。 故に、スレッドセーフ(= マルチスレッドで動作しても問題がない)な実装が可能になる * 勝手なイメージだが、Mapみたいなクラスで、 キーにスレッドID、値に指定したクラス(「使用イメージ」でいうと「SampleClass」)みたいな感じ * get/setメソッドによって 現在のスレッドに固有な領域への読み書き可能
使用イメージ
private ThreadLocal<SampleClass> threadLocalSample; // 設定 this.threadLocalSample.set(new SampleClass()); // 取得(現行スレッドの値を取得) SampleClass instancePerThread = this.threadLocalSample.get();
サンプル
* 以下の関連記事を参照のこと。 => ThreadLocal を使って、スレッドごとにログを出力するサンプルhttp://blogs.yahoo.co.jp/dk521123/32910143.html
参考文献
API仕様
http://docs.oracle.com/javase/jp/7/api/java/lang/ThreadLocal.htmlその他のサイト
http://d.hatena.ne.jp/yamadamn/20131214/1386996898http://qiita.com/yoshi-naoyuki/items/507c5c3ea6027033f4bb
http://www.ne.jp/asahi/hishidama/home/tech/java/thread.html