ThreadLocal
根据名字我们可以知道这是一个线程本地变量,每一个线程都回copy一个副本,可以为创造对象减少不必要的开销(单例),但是不能保证线程安全(每个线程的结果可能是不一样的)
ThreadLocal对比锁机制:
- 锁机制是以时间换空间,让多个线程依次访问一个资源
- ThreadLocal是以空间换时间,每个线程拥有资源的一个副本,不会相互影响
ThreadLocal类常用方法:
- get:获得线程局部变量中的值
- set:设置值
- remove:删除值
- initialValue:给值进行初始化
示例代码
public class UseThreadLocal {
//定义普通的变量
private static int num1