我們可以像ThreadLocal的方式那樣獲取對Thread的成員變量的引用嗎?ThreadLocal與Java中線程中的成員變量
例如,假設我們使用一個計數器變量來對付由ThreadLocal變量中的Thread處理的請求的數量。考慮我們正在使用ThreadPool執行器來重用線程。現在每個線程都保持對ThreadLocal計數器變量的引用,並且可以在每次請求後增加自己的副本。 以類似的方式,如果我有一個Runnable中的成員變量,我可以找回它的引用嗎?線程無論如何被重用。
我們可以像ThreadLocal的方式那樣獲取對Thread的成員變量的引用嗎?ThreadLocal與Java中線程中的成員變量
例如,假設我們使用一個計數器變量來對付由ThreadLocal變量中的Thread處理的請求的數量。考慮我們正在使用ThreadPool執行器來重用線程。現在每個線程都保持對ThreadLocal計數器變量的引用,並且可以在每次請求後增加自己的副本。 以類似的方式,如果我有一個Runnable中的成員變量,我可以找回它的引用嗎?線程無論如何被重用。
如果我有一個Runnable中的成員變量,我可以找回它的引用嗎?
當您說「可運行」時,您正在討論實現Runnable
接口的某個對象。關於Runnable
沒有任何魔力,關於run()
方法沒有什麼魔力。
Runnable
對象的成員變量就像任何其他對象的成員變量一樣,並且您的代碼以相同的方式訪問它們。
PS,通常情況下,當你在程序中看到ThreadLocal
,這意味着
static
變量,我幾乎從來不使用ThreadLocal
在一個新的程序,因爲我努力不要編寫依賴於靜態變量的任何代碼,如果你正在使用ThreadLocal
非靜態數據,你可能會做你的程序方式比它需要的更復雜。