ThreadLocal類可以用來創建線程局部變量,在每個線程中存儲獨立的變量副本。這些變量只對當前線程可見,其他線程無法訪問。以下是ThreadLocal類的基本用法示例:
1、創建一個ThreadLocal對象:
```java
ThreadLocal
```
2、設置當前線程的局部變量的值:
```java
threadLocal.set("Hello, ThreadLocal!");
```
3、獲取當前線程的局部變量的值:
```java
String value = threadLocal.get();
System.out.println(value); // 輸出:Hello, ThreadLocal!
```
4、在每個線程中存儲獨立的變量副本:
```java
ThreadLocal
ExecutorService executor = Executors.newFixedThreadPool(2);
for (int i = 0; i < 2; i++) {
executor.submit(() -> {
int value = threadLocal.get();
value++;
threadLocal.set(value);
System.out.println("Thread " + Thread.currentThread().getId() + ": " + value);
});
}
executor.shutdown();
```
在上面的示例中,我們創建一個ThreadLocal對象,每個線程都有自己的變量副本,遞增變量值并輸出到控制臺。每個線程的值是獨立的,互不影響。
總之,ThreadLocal類可以在多線程環境中用來存儲線程局部變量,保證線程間數據隔離,避免線程安全問題。