ThreadLocal的使用

Nor*_*asu 8 java

Thread中的ThreadLocal的典型用法是什么?什么时候使用它?我无法从这篇java docs文章中获取应用程序的详细信息.

Ale*_*exR 5

我要说的是,最典型的ThreadLocal用法是当你有一个对象必须在一个流程中的任何地方都可访问时,你不想在所有层上传递对该对象的引用.像单身模式但每个线程的东西.

示例是数据库连接,休眠会话等.您可以在流程的开头某处打开它们,在流程结束时提交/关闭,并在流程中随处使用.


Vic*_*cas 4

适用于当您想要使用非线程安全的对象,但又不想同步对它们的访问(出于性能原因)时。或多或少,您为需要多次使用的对象创建了一个访问器,以便确保可能调用该访问器的每个线程都获得一个不同的、未使用的访问器。一个非常典型的用途是使用 SimpleDateFormat,它是一个类,如果它是线程安全的,您的实例将被声明为静态,以便重用同一实例。

这是一篇描述它的好文章:Dr. Dobbs:在 Java 中使用线程局部变量