package com.aflfte.others;
/**
* ThreadLocal:表示的是每个线程自身的存储本地、局部区域,更改不会影响其它线程
* get/set/initialValue方法的使用
* @author jinhao
*
*/
public class ThreadLocalTest01 {
//private static ThreadLocal<Integer> threadlocal=new ThreadLocal<>();//未修改默认初始化值的写法
//修改初始化值 写法一:
/*private static ThreadLocal<Integer> threadlocal=new ThreadLocal<>() {
protected Integer initialValue() {
return 200;
}
};*/
//修改初始化值 写法二:
private static ThreadLocal<Integer> threadlocal=ThreadLocal.withInitial(()->200);
public static void main(String[] args) {
//获取值
System.out.println(Thread.currentThread().getName()+"-->"+threadlocal.get());
//设置值
threadlocal.set(99);
System.out.println(Thread.currentThread().getName()+"-->"+threadlocal.get());
new Thread(new MyRun()).start();
new Thread(new MyRun()).start();
}
public static class MyRun implements Runnable{
public void run() {
System.out.println(Thread.currentThread().getName()+"-->"+threadlocal.get());
threadlocal.set((int)(Math.random()*100));
System.out.println(Thread.currentThread().getName()+"-->"+threadlocal.get());
}
}
}
« InterAddress的使用方法
|
DCL单例模式»
|