Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
沉默王二
Jmx Java
提交
3a5f1f5d
J
Jmx Java
项目概览
沉默王二
/
Jmx Java
9 个月 前同步成功
通知
160
Star
18
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
Jmx Java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3a5f1f5d
编写于
8月 22, 2023
作者:
沉默王二
💬
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ThreadLocal
上级
df6f49ce
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
6 addition
and
4 deletion
+6
-4
README.md
README.md
+1
-1
docs/thread/ThreadLocal.md
docs/thread/ThreadLocal.md
+5
-3
未找到文件。
README.md
浏览文件 @
3a5f1f5d
...
@@ -266,7 +266,7 @@
...
@@ -266,7 +266,7 @@
-
[
非阻塞性队列ConcurrentLinkedQueue
](
docs/thread/ConcurrentLinkedQueue.md
)
-
[
非阻塞性队列ConcurrentLinkedQueue
](
docs/thread/ConcurrentLinkedQueue.md
)
-
[
阻塞队列BlockingQueue
](
docs/thread/BlockingQueue.md
)
-
[
阻塞队列BlockingQueue
](
docs/thread/BlockingQueue.md
)
-
[
并发容器CopyOnWriteArrayList
](
docs/thread/CopyOnWriteArrayList.md
)
-
[
并发容器CopyOnWriteArrayList
](
docs/thread/CopyOnWriteArrayList.md
)
-
[
吊打Java并发面试官之
ThreadLocal
](
docs/thread/ThreadLocal.md
)
-
[
本地变量
ThreadLocal
](
docs/thread/ThreadLocal.md
)
-
[
面试必备:Java线程池
](
docs/thread/pool.md
)
-
[
面试必备:Java线程池
](
docs/thread/pool.md
)
-
[
为什么阿里巴巴要禁用Executors创建线程池?
](
docs/thread/ali-executors.md
)
-
[
为什么阿里巴巴要禁用Executors创建线程池?
](
docs/thread/ali-executors.md
)
-
[
深入剖析Java计划任务ScheduledThreadPoolExecutor
](
docs/thread/ScheduledThreadPoolExecutor.md
)
-
[
深入剖析Java计划任务ScheduledThreadPoolExecutor
](
docs/thread/ScheduledThreadPoolExecutor.md
)
...
...
docs/thread/ThreadLocal.md
浏览文件 @
3a5f1f5d
---
---
title
:
吊打Java并发面试官之ThreadLocal
title
:
吊打Java并发面试官之ThreadLocal
shortTitle
:
ThreadLocal
shortTitle
:
ThreadLocal
description
:
吊打Java并发面试官之ThreadLocal
description
:
ThreadLocal 是 Java 中提供的一种用于实现线程局部变量的工具。它允许每个线程都可以有自己的独立副本,从而实现线程隔离,可以用于解决多线程中共享对象的线程安全问题。
category
:
category
:
-
Java核心
-
Java核心
tag
:
tag
:
...
@@ -12,9 +12,11 @@ head:
...
@@ -12,9 +12,11 @@ head:
content
:
Java,并发编程,多线程,Thread,ThreadLocal
content
:
Java,并发编程,多线程,Thread,ThreadLocal
---
---
#
# ThreadLocal 的简介
#
14.24 本地变量 ThreadLocal
在多线程编程中通常解决线程安全的问题时,我们会利用 synchronzed 或者 lock 控制线程对临界区资源的同步顺序,但是这种加锁的方式会让未获取到锁的线程进行阻塞等待,很显然这种方式的时间效率并不是特别好。
ThreadLocal 是 Java 中提供的一种用于实现线程局部变量的工具。它允许每个线程都拥有自己的独立副本,从而实现线程隔离。ThreadLocal 可以用于解决多线程中共享对象的线程安全问题。
通常,我们会使用
[
synchronzed 关键字
](
https://javabetter.cn/thread/synchronized-1.html
)
或者
[
lock
](
https://javabetter.cn/thread/lock.html
)
来控制线程对临界区资源的同步顺序,但这种加锁的方式会让未获取到锁的线程进行阻塞,很显然,这种方式的时间效率不会特别高。
**线程安全问题的核心在于多个线程会对同一个临界区共享资源进行操作**
,那么,如果每个线程都使用自己的“共享资源”,各自使用各自的,互相不影响到彼此,即多个线程间达到隔离的状态,这样就不会出现线程安全的问题。
**线程安全问题的核心在于多个线程会对同一个临界区共享资源进行操作**
,那么,如果每个线程都使用自己的“共享资源”,各自使用各自的,互相不影响到彼此,即多个线程间达到隔离的状态,这样就不会出现线程安全的问题。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录