今朝ThreadLocalについて学びました。私の混乱がこれですThreadLocalについて混乱しています
(SessionはHibernateのSessionである)
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
:それは静的なので、それはJVM内のどのスレッドに利用可能である私はそれは常にのような最終的な静的であることを読みました。それはそれにアクセスする各スレッドにローカルの情報を保持しますか?私はこれの周りに頭をラップしようとしているので、これが不明な場合はお詫び申し上げます。アプリケーションの各スレッドは同じThreadLocalオブジェクトにアクセスできますが、ThreadLocalオブジェクトは各スレッドのローカルオブジェクトを格納しますか?
共有環境に配備されたWebアプリケーションでは、これを使用することに注意してください。スレッドローカルはすべてのコンテキストにわたってリークし、アンデプロイ後にスレッドローカルの参照はガベージコレクションされません。各要求後に手動でデータを削除する必要があります。 – jontro
それは一見矛盾しています。 'ThreadLocal'は各スレッドで一意であるはずですが、静的オブジェクトは各スレッド間で共有されます。この同じ質問をしようとしていた。 – aliteralmind