Java Threadlocal類的使用和原理分析

2021-09-18 08:07:57 字數 863 閱讀 9950

threadlocal

key value

thread1 aaa

thread2 bbb

thread3 ccc

1 threadlocal api

threadlocal類只有三個方法:

void set(t value):儲存值;

t get():獲取值;

void remove():移除值。

2 threadlocal的內部是map

threadlocal內部其實是個map來儲存資料。雖然在使用threadlocal時只給出了值,沒有給出鍵,其實它內部使用了當前執行緒做為鍵。

threadlocal的簡單使用1

@test

public void fun()

threadlocal的核心原始碼

class   mythreadlocal 

public void remove()

public t get()

}

threadlocal的測試

@test

public void fun2()

}.start();

try catch (interruptedexception e)

system.out.println("外部執行緒開始獲取了"+local.get());

控制台輸出:

thread-0執行緒開始獲取了null

外部執行緒開始獲取了我是main設定的值

}

可以看出,map的key是當前執行緒的名字,只有通過當前執行緒呼叫方法隱式傳入了執行緒的名字才能取出儲存的值

Future類的使用和原理

future是concurrent包提供的一種非同步得到結果的介面。future介面 public inte ce future future裡面的任務,必須實現callable介面。callable介面 public inte ce callable state狀態當前計算的情況有下面這些狀態 p...

7 3 類的定義和使用 20分

請定義乙個point類,有兩個資料成員 x和y,分別代表x座標和y座標,並有若干建構函式和乙個移動的成員函式,可輸出移動後新的座標值。輸入 第一行的兩個數 分別表示 點的x座標和y座標。第二行的兩個數 分別表示 x和y方向移動的距離。輸出 移動後的點的x座標和y座標。輸入樣例 1 52 5 輸出樣例...

類和類的使用

class people name xiaoming 類屬性,類裡面的變數稱為屬性 age 18 私有屬性,別人知道後不會去動它,概念性問題 age 18 也是私有屬性,訪問會報錯 a people 例項化 print a.age 通過例項訪問類屬性,雖然是私有的,但是訪問還是可以列印,b peop...