JAVA基礎特性 ThreadLocal 應用

2021-08-30 06:00:08 字數 1222 閱讀 3647

threadlocal是什麼呢?其實threadlocal並非是乙個執行緒的本地實現版本,它並不是乙個thread,而是thread local variable(執行緒區域性變數)。也許把它命名為threadlocalvar更加合適,他實現了執行緒的變數隔離,不同的執行緒可以維護自己的變數,

他在內部實現原理上比較簡單,就是每個threadlocal內定義乙個以自己執行緒名稱為key的hashmap,在應用上非常廣泛,struts2等框架的每乙個action請求都會被web容器初始化為乙個actioncontext。這樣就實現了不同請求的隔離。

下面看乙個demo,通過demo的演示大概就可以看到 threadlocal的應用。

主程式:

/*** @author job**/

public class threadlocaltest

});service.execute(new runnable()

});service.shutdown();}}

用作共享的引數類:

/*** @author dingjob**/

class mydata

int x;

public static mydata getmydata()

return mydata;

}public int getx()

public void setx(int x)

}

兩個簡單的service

class a

}/**

* @author dingjob**/

class b

}

輸出結果如下:

[quote]

62481336

pool-1-thread-1 62481336

-1790656022

pool-1-thread-2 -1790656022

[/quote]

通過以上**大概可以看到,a,b 兩個執行緒實現了隔離,a列印出來的就是a執行緒初始化

的值。順便說一下:

上面的例子也用了下自己不太熟悉的1.5的多執行緒處理類。

同時在mydata的實現了良好的封裝。

threadlocal 可以用於session等的儲存,有很廣泛的用途。

JAVA集合類基礎特性

set集合 1 set集合的特點 無序,唯一 2 hashset集合 掌握 a 底層資料結構是雜湊表 是乙個元素為鍊錶的陣列 b 雜湊表底層依賴兩個方法 hashcode 和equals 執行順序 首先比較雜湊值是否相同 相同 繼續執行equals 方法 返回true 元素重複了,不新增 返回fal...

JAVA基礎 物件導向的優良特性

物件導向的優良特性是封裝,繼承,多型。封裝的意義,在於明確標識出允許外部使用的所有成員函式和資料項,或者叫介面。有了封裝,就可以明確區分內外,使得類實現者可以修改封裝內的東西而不影響外部呼叫者 而外部呼叫者也可以知道自己不可以碰 這就提供乙個良好的合作基礎 或者說,只要介面這個基礎約定不變,則 改變...

Java基礎 三大特性之多型

多型的定義 指允許不同類的物件對同一訊息做出響應。即同一訊息可以根據傳送物件的不同而採用多種不同的行為方式。實現多型的技術稱為 動態繫結 dynamic binding 是指在執行期間判斷所引用物件的實際型別,根據其實際的型別呼叫其相應的方法。多型的作用 消除型別之間的耦合關係。多型三個必要條件 1...