> ### `ThreadLocal`
* `ThreadLocal`,即線程變量。在`ThreadLocal`類中有一個`static`聲明的`Map<ThreadID,Object>`,用于存儲每一個線程的變量副本構,`key`為線程`id`,`value`為自己定義的任意數據類型并綁定到對應的`key`的線程上。
* 示例代碼
```
public class ThreadLocalDemo {
//類型為map的ThreadLocal
public static final ThreadLocal<HashMap<Integer, Long>> TIME_THREADLOCAL = new ThreadLocal<HashMap<Integer, Long>>() {
//重寫initialValue方法,初始化
protected HashMap<Integer, Long> initialValue() {
return new HashMap<Integer, Long>();
}
};
// TIME_THREADLOCAL 針對每個線程 創建了一個副本
public static class ThreadDemo implements Runnable{
int index;
public ThreadDemo(int index){
this.index = index;
}
public static final void begin() {
HashMap<Integer, Long> map = new HashMap<Integer, Long>();
map.put(0, System.currentTimeMillis());
//set
TIME_THREADLOCAL.set(map);
}
public static final long end() {
//get
return System.currentTimeMillis() - TIME_THREADLOCAL.get().get(0);
}
public void run(){
ThreadDemo.begin();
try {
TimeUnit.SECONDS.sleep(this.index);
// TimeUnit.SECONDS.sleep((int)(Math.random()*10));
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread: " + Thread.currentThread().getName() + " | Cost: " + ThreadDemo.end() + " mills");
}
}
public static void main(String[] args) throws Exception {
for (int i = 0; i < 10; i++) {
Thread thread = new Thread(new ThreadDemo(i), String.valueOf(i));
thread.start();
}
}
}
```
- asD
- Java
- Java基礎
- Java編譯器
- 反射
- collection
- IO
- JDK
- HashMap
- ConcurrentHashMap
- LinkedHashMap
- TreeMap
- 阻塞隊列
- java語法
- String.format()
- JVM
- JVM內存、對象、類
- JVM GC
- JVM監控
- 多線程
- 基礎概念
- volatile
- synchronized
- wait_notify
- join
- lock
- ThreadLocal
- AQS
- 線程池
- Spring
- IOC
- 特性介紹
- getBean()
- creatBean()
- createBeanInstance()
- populateBean()
- AOP
- 基本概念
- Spring處理請求的過程
- 注解
- 微服務
- 服務注冊與發現
- etcd
- zk
- 大數據
- Java_spark
- 基礎知識
- Thrift
- hdfs
- 計算機網絡
- OSI七層模型
- HTTP
- SSL
- 數據庫
- Redis
- mysql
- mybatis
- sql
- 容器
- docker
- k8s
- nginx
- tomcat
- 數據結構/算法
- 排序算法
- 快排
- 插入排序
- 歸并排序
- 堆排序
- 計算時間復雜度
- leetcode
- LRU緩存
- B/B+ 樹
- 跳躍表
- 設計模式
- 單例模式
- 裝飾者模式
- 工廠模式
- 運維
- git
- 前端
- thymeleaf
- 其他
- 代碼規范
- work_project
- Interview