用于将隐式数据传递给组件的设计模式(隐式意义不是通过参数)。

时间:2012-03-29 08:07:13

标签: java multithreading

具体来说,我正在寻找一种模式来为组件提供有关当前线程特定的当前运行时的信息。

目前,为了将负责给定进程的用户传递给线程,我将线程名称设置为用户的标识号。然后,组件可以通过线程名称获取有关谁拥有该进程的信息。

在我看来,这就像滥用线程名称一样。是否有更好的方法来保存这些信息?

1 个答案:

答案 0 :(得分:2)

Java类ThreadLocal是解决此问题的正确方法。它将信息保存在线程的上下文中,您可以使用它在一个点设置用户信息,然后在稍后的某个时间点从同一个线程访问它,例如来自应用程序的不同层。只要组件/服务在同一个线程中运行,这就可以工作。