ThreadLocal應用及原始碼分析
阿新 • • 發佈:2020-11-20
ThreadLocal
# 基本使用
ThreadLocal 的作用是:提供執行緒內的區域性變數,不同的執行緒之間不會相互干擾,這種變數線上程的生命週期內起作用,減少同一個執行緒內多個函式或元件之間一些公共變數傳遞的複雜度,降低耦合性。
| 方法宣告 | 描述 |
| ------------------------- | -------------------------- |
| ThreadLocal() | 建立ThreadLocal物件 |
| public void set( T value) | 設定當前執行緒繫結的區域性變數 |
| public T get() | 獲取當前執行緒繫結的區域性變數 |
| public void remove() | 移除當前執行緒繫結的區域性變數 |
簡單使用:
```java
public class MyDemo {
private String content;
private String getContent() {
return content;
}
private void setContent(String content) {
this.content = content;
}
public static void main(String[] args) {
MyDemo demo = new MyDemo();
for (int i = 0; i < 5; i++) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
demo.setContent(Thread.currentThread().getName() + "的資料");
System.out.println("-----------------------");
System.out.println(Thread.currentThread().getName() + "--->" + demo.getContent());
}
});
thread.setName("執行緒" + i);
thread.start();
}
}
}
```
![](https://img2020.cnblogs.com/blog/2202901/202011/2202901-20201120100302944-566328192.png)
```java
public class MyDemo {
private static Thr