ThreadLocal 変数を使用する場合とその方法
ThreadLocal 変数は、Java アプリケーションでスレッドごとのデータを管理するための重要なメカニズムを提供します。ここでは、それらを効果的に使用する場合と方法について詳しく説明します。
ThreadLocal 変数を使用する場合
ThreadLocal 変数を使用するための 1 つの重要なシナリオは、非変数を使用する場合に発生します。 - 個々のスレッド内で分離したいスレッドセーフなオブジェクト。これにより、同期アクセスの必要性が回避され、パフォーマンスと同時実行性が向上します。
ThreadLocal 変数の使用方法
ThreadLocal 変数は、通常の変数と同様に宣言されますが、 ThreadLocal クラス。このクラスは、各スレッドで変数のデフォルト値を設定できるInitialValue() メソッドを公開します。
使用例
次の例を考えてみましょう。
public class Foo { // SimpleDateFormat is not thread-safe, so give one to each thread private static final ThreadLocal<SimpleDateFormat> formatter = new ThreadLocal<SimpleDateFormat>() { @Override protected SimpleDateFormat initialValue() { return new SimpleDateFormat("yyyyMMdd HHmm"); } }; public String formatIt(Date date) { return formatter.get().format(date); } }
この例では、SimpleDateFormat は非スレッドセーフ クラスです。 ThreadLocal 変数を利用することにより、各スレッドは SimpleDateFormat の独自のインスタンスを取得し、スレッドの安全性の問題を軽減します。 formatter.get() 呼び出しは、現在のスレッドに関連付けられたインスタンスをフェッチし、同期せずに日付のフォーマットを設定できるようにします。
その他のリソース
ThreadLocal 変数の詳細については、については、公式 Java ドキュメントを参照してください: [ThreadLocal Class (Java Platform SE) 8)](https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadLocal.html)
以上がJava で ThreadLocal 変数をいつどのように使用すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。