1
具體而言,我正在尋找一種模式來爲組件提供有關當前線程特定的當前運行時的信息。將隱式數據傳遞給組件的設計模式(不通過參數的隱含含義)。
當前,爲了將負責給定進程的用戶傳遞給線程,我將線程名稱設置爲用戶的標識號。然後組件可以通過線程名稱獲取有關誰擁有該進程的信息。
這在我看來就像濫用線程名稱。有更好的方法來保存這些信息嗎?
具體而言,我正在尋找一種模式來爲組件提供有關當前線程特定的當前運行時的信息。將隱式數據傳遞給組件的設計模式(不通過參數的隱含含義)。
當前,爲了將負責給定進程的用戶傳遞給線程,我將線程名稱設置爲用戶的標識號。然後組件可以通過線程名稱獲取有關誰擁有該進程的信息。
這在我看來就像濫用線程名稱。有更好的方法來保存這些信息嗎?
Java類ThreadLocal
是解決這個問題的正確方法。它會將信息保留在線程的上下文中,您可以使用它在一點設置用戶信息,然後在稍後的點從同一線程訪問它,例如,來自應用程序的不同層。只要組件/服務在同一個線程中運行,這將工作。