開發者學堂課程【Java 面試疑難點串講1:面試技巧及語言基礎:threadLocal 和 threadpool】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/24/detail/495threadLocal和threadpool
内容介紹
一、threadLocal 和 threadpool
ThreadIocal 類的最大特征是可以儲存一個引用資料類型,并且這個引用資料類型儲存的時候會自動儲存有一個 currentThread() 對象,這樣的最明确的好處就是可以避免引用傳遞的問題。
範例:傳統的引用傳遞有些啰嗦
package cn.mldn.demo;
class A {
private string info ;
public void setInfo( string info) {
this.info = info;
}
public string getInfo( ) {
return info;
}
}
class B {
public static void print(A a) i
system.out.print1n(a.getinfo
());
}
}
public class ThreadLocalDemo {
public static void main( String[ ] args) {
A a = new A() ;
a.
setInfo( "mldn" ) ;
B.print(a);//
此時必須要明确的給出一個引用類型
}
必須明确的給出一個引用類型。那麼如果說現在我不想明确的使用引用類型進行傳遞,那麼能否實作呢?
這種 ThreadLocal 很少會直接出現在程式的開發之中,包括在以後的項目編寫裡面,如果你使用的是架構開發技術這一點幾乎是不可見的,如果要想特别清楚的了解,那麼就必須充分的了解《 Java 業務分析設計》。
ThreadPool 指的是線程池,也就是說提供有一個對象池,這個對象池裡面可以有若幹個線程對象幫助我們進行可重複使用的對象生成,而對于線程池。
一共有四種:無限制增長、定長執行、定時操作、單線程單線程池。
此時在這個線程池裡的對象将一直進行使用,如果該對象不夠使用了,那麼就将産生新的對象以供使用。
線程池的整體概念是留給線程重用的操作。
在現在的一些公司的筆試裡面經常會出現線程池的概念。