据我所知,在 Java 中,ThreadLocal 类使我们能够创建虚拟线程范围。所以一个线程不能访问另一个的变量或其他东西。
能否请您提供一些编码人员需要使用 ThreadLocal 的代码,使用 ThreadLocal 后一切正常。
谢谢。
最佳答案
使用 ThreadLocal
是一种使每个线程都可以使用信息的便捷方法,通常用于每个请求一个线程模型的 Web 应用程序中。需要为每个请求单独跟踪的请求上下文数据可以使用 ThreadLocal
提供。
ThreadLocal
常用于Spring Framework ,根据所使用的组件,您可以在其中使用 ThreadLocal
表示各种类型的上下文。
有关真实世界的示例,请参阅:
每个示例的意图和实现都是相似的。例如您想要存储当前请求的 Locale
信息,然后在其他地方可用。 set 方法(例如 setLocaleContext
将信息存储在 ThreadLocal 上)和 get 方法(例如 getLocaleContext
将从当前线程返回 Locale
信息请求)
最后,我想补充一点,滥用 ThreadLocal
不是一个好主意,不应将其视为良好设计的替代品。因此,如果可以通过传递具有适当字段值的对象来共享相关的上下文信息,那么这应该优于 ThreadLocal
,后者使信息可以普遍访问。 This article可能会更有用。
关于java - 显示 ThreadLocal 使用要求的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804498/