[Java123] ThreadLocalの研究ノート

https://www.cnblogs.com/ldq2016/p/9041856.html

 

ThreadLocal変数のメンテナンスを使用する場合、ThreadLocalのは、変数独立変数のコピーを使用して、各スレッドに提供、各スレッドは独立してコピーを対応する他のスレッドに影響を与えることなく、そのコピーを変更することができます。

 

ThreadLocalのインタフェースメソッド

ThreadLocalのクラスインターフェイスは非常にシンプルですが、唯一の4つの方法は、のは、見てみましょう:

  • 値voidセット(Object値)は、現在のスレッドのスレッドローカル変数を設定します。
  • パブリックオブジェクトのget()メソッドは、スレッドローカル変数に対応する現在のスレッドを返します。
  • 公共ボイド削除()が削除され、現在のスレッドのローカル変数の値は、目的は、JDK 5.0の新しい方法であるメモリ使用量を低減することです。スレッドの終了は、スレッドローカル変数は自動的にゴミが考えられますので、明示的にローカル変数が動作するために必要されていないスレッドをクリアするには、このメソッドを呼び出して、それはメモリ速度の回復をスピードアップすることができなければならないとき、ことに留意すべきです。
  • 保護オブジェクトはinitialValue()が明らかにカバー設計サブクラスを可能にするために、保護する方法であって、スレッドローカル変数の初期値に戻ります。このメソッドは、呼び出し遅延する方法であり、(取得)呼び出しや実行が初めてスレッドとき(Object)を設定し、一度だけ行きました。直接リターンのデフォルトのThreadLocalはnull。

ジェネリックをサポートしていThreadLocalのは、クラス名のクラスはThreadLocalの<T>となっています。APIメソッドに応じて調整され、APIメソッドの新バージョンがvoidセット(T値)あり、Tは、(取得)およびTはinitialValue()。

 

クラス変数スレッドの保存されたコピーの各々のためのThreadLocalのマップ、マップのスレッドオブジェクトの重要な要素、スレッドの値に対応する変数のコピーを持っています。私たち自身は、単純な実装のバージョンを提供することができます。

 

おすすめ

転載: www.cnblogs.com/cathygx/p/11285349.html