ThreadLocal是一个类核心方法:
ThreadLocal和线程同步机制都是为了解决多线程中相同变量的访问冲突问题而提出的。
该类向多线程的各个线程添加一个虚拟空间,各自虚拟空间的数据不会互相影响;
initialValue():该方法有返回值,返回值为该类的泛型
set():改变initialValue的值
get():获取initialValue的值
remover():移除虚拟空间
将当前线程局部变量的值删除,目的是为了减少内存的占用,该方法是 JDK 5.0新增的方法。需要指出的是,当线程结束后,对应该线程的局部变量 将自动被垃圾回收,所以显式调用该方法清除线程的局部变量并不是必须的 操作,但它可以加快内存回收的速度。
package com.wc;
public class AppTest implements Runnable {
private static ThreadLocal<Integer> local = new ThreadLocal<Integer>() {
protected Integer initialValue() {
return 1000;
}
};
@Override
public void run() {
while (true){
if (local.get() > 0) {
local.set(local.get() - 1);
System.out.println(local.get() + "" + Thread.currentThread().getName());
}else{
break;
}
}
}
public static void main(String[] args) throws SQLException, ClassNotFoundException {
new Thread(new AppTest(),"Diyig").start();
new Thread(new AppTest(),"Di二个").start();
}
}