From 969fcc285bd6babe818f2c9d1ad0777adfb7b6e5 Mon Sep 17 00:00:00 2001 From: asahi Date: Sat, 23 Dec 2023 14:44:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8Dwsl=E7=BB=88=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java se/juc.md | 58 +++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/java se/juc.md b/java se/juc.md index ac169e2..4280bb3 100644 --- a/java se/juc.md +++ b/java se/juc.md @@ -1,29 +1,29 @@ -# juc -## ThreadLocal -通过ThreadLocal api,可以存储对象,并且存储的对象只有指定线程才能够访问。 - -### 示例 -```java -// 声明一个ThreadLocal对象,其中存储的Integer值和特定线程绑定 -ThreadLocal threadLocalVlaue = new ThreadLocal<>(); -// 再特定线程中,调用get/set方法,可以对与该线程绑定 -// 的integer值进行获取或设置 -threadLocalValue.set(1); -Integer result = threadLocalValue.get(); -``` -ThreadLocal类似于一个map,其中key为线程,value为与线程绑定的值,再特定线程中调用 - -### api -#### withInitial -可以通过`ThreadLocal.withInitial`方法来构造一个带初始值的threadLocal对象,该静态方法接收一个supplier对象。 -```java -ThreadLocal threadLocal = ThreadLocal.withInitial(() -> 1); -``` -如果一个ThreadLocal对象指定了withInitial方法,那么当该ThreadLocal对象get为空时,会调用withInitial并用该方法的返回值来初始化该threadLocal对象。 - -#### remove -如果要移除ThreadLocal中的对象,可以调用`remove`方法 -```java -threadLocal.remove(); -``` - +# juc +## ThreadLocal +通过ThreadLocal api,可以存储对象,并且存储的对象只有指定线程才能够访问。 + +### 示例 +```java +// 声明一个ThreadLocal对象,其中存储的Integer值和特定线程绑定 +ThreadLocal threadLocalVlaue = new ThreadLocal<>(); +// 再特定线程中,调用get/set方法,可以对与该线程绑定 +// 的integer值进行获取或设置 +threadLocalValue.set(1); +Integer result = threadLocalValue.get(); +``` +ThreadLocal类似于一个map,其中key为线程,value为与线程绑定的值,再特定线程中调用 + +### api +#### withInitial +可以通过`ThreadLocal.withInitial`方法来构造一个带初始值的threadLocal对象,该静态方法接收一个supplier对象。 +```java +ThreadLocal threadLocal = ThreadLocal.withInitial(() -> 1); +``` +如果一个ThreadLocal对象指定了withInitial方法,那么当该ThreadLocal对象get为空时,会调用withInitial并用该方法的返回值来初始化该threadLocal对象。 + +#### remove +如果要移除ThreadLocal中的对象,可以调用`remove`方法 +```java +threadLocal.remove(); +``` +