适配wsl终端
This commit is contained in:
@@ -1,29 +1,29 @@
|
|||||||
# juc
|
# juc
|
||||||
## ThreadLocal
|
## ThreadLocal
|
||||||
通过ThreadLocal api,可以存储对象,并且存储的对象只有指定线程才能够访问。
|
通过ThreadLocal api,可以存储对象,并且存储的对象只有指定线程才能够访问。
|
||||||
|
|
||||||
### 示例
|
### 示例
|
||||||
```java
|
```java
|
||||||
// 声明一个ThreadLocal对象,其中存储的Integer值和特定线程绑定
|
// 声明一个ThreadLocal对象,其中存储的Integer值和特定线程绑定
|
||||||
ThreadLocal<Integer> threadLocalVlaue = new ThreadLocal<>();
|
ThreadLocal<Integer> threadLocalVlaue = new ThreadLocal<>();
|
||||||
// 再特定线程中,调用get/set方法,可以对与该线程绑定
|
// 再特定线程中,调用get/set方法,可以对与该线程绑定
|
||||||
// 的integer值进行获取或设置
|
// 的integer值进行获取或设置
|
||||||
threadLocalValue.set(1);
|
threadLocalValue.set(1);
|
||||||
Integer result = threadLocalValue.get();
|
Integer result = threadLocalValue.get();
|
||||||
```
|
```
|
||||||
ThreadLocal类似于一个map,其中key为线程,value为与线程绑定的值,再特定线程中调用
|
ThreadLocal类似于一个map,其中key为线程,value为与线程绑定的值,再特定线程中调用
|
||||||
|
|
||||||
### api
|
### api
|
||||||
#### withInitial
|
#### withInitial
|
||||||
可以通过`ThreadLocal.withInitial`方法来构造一个带初始值的threadLocal对象,该静态方法接收一个supplier对象。
|
可以通过`ThreadLocal.withInitial`方法来构造一个带初始值的threadLocal对象,该静态方法接收一个supplier对象。
|
||||||
```java
|
```java
|
||||||
ThreadLocal<Integer> threadLocal = ThreadLocal.withInitial(() -> 1);
|
ThreadLocal<Integer> threadLocal = ThreadLocal.withInitial(() -> 1);
|
||||||
```
|
```
|
||||||
如果一个ThreadLocal对象指定了withInitial方法,那么当该ThreadLocal对象get为空时,会调用withInitial并用该方法的返回值来初始化该threadLocal对象。
|
如果一个ThreadLocal对象指定了withInitial方法,那么当该ThreadLocal对象get为空时,会调用withInitial并用该方法的返回值来初始化该threadLocal对象。
|
||||||
|
|
||||||
#### remove
|
#### remove
|
||||||
如果要移除ThreadLocal中的对象,可以调用`remove`方法
|
如果要移除ThreadLocal中的对象,可以调用`remove`方法
|
||||||
```java
|
```java
|
||||||
threadLocal.remove();
|
threadLocal.remove();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user