java 併發,為執行緒建立本地變數 ThreadLocal的使用

hgs19921112發表於2018-08-16
package test;
public class ThreadLocalTest {
public static void main(String[] args) {
ThreadLocal<String> tl = new ThreadLocal<String>();
Local<String> l = new Local<String>();
ThreadA ta = new ThreadA(tl);
ThreadA tb = new ThreadA(tl);
ta.setName("Thread--A");
tb.setName("Thread--B");
ta.start();
tb.start();
}
}
class Local<T> {
T a ;
public void set(T a ){
this.a =a ;
}
public T get(){
return a  ;
}
}
class ThreadA extends Thread{
ThreadLocal<String> tl;
ThreadA(ThreadLocal<String> tl){
this.tl = tl;
}
public void run() {
String x= null; this.getName();
for(int i = 1 ; i<10;i++) {
x= this.getName()+ " "+i;
tl.set(x);
System.out.println(this.getName()+"設定值:"+i);
/*try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
System.out.println(this.getName()+"獲取值:"+tl.get());
}
}
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31506529/viewspace-2200233/,如需轉載,請註明出處,否則將追究法律責任。

相關文章