【Java】 java.lang.ThreadLocal について

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


関連記事

Thread-Specific Storage パターン

http://blogs.yahoo.co.jp/dk521123/32910143.html