线程到底是个啥?JVM里它连个专属小窝都没有?
相信很多人都知道成员变量是有并发问题的而局部变量是线程安全的。那么为什么呢还有局部变量一定是线程安全吗以上就是本节讲解的重点内容。1.线程的存储结构掌握了JVM内存划分相关知识的人, 便了解JVM内存区域涵盖, 程序计数器( )、Java栈(VM Stack)、本地方法栈( Stack)、方法区( Area)、堆(Heap)。方法区又名为永久代, 于JDK1.8之后, 以元空间替换了永久代, 并且常量以及静态变量也被转移至Java堆里。JDK1.8之前常量、静态变量是存放于方法区当中。当我们弄出新的线程之时, JVM就会给线程弄出一个栈, 栈对于线程来讲有私有的特性, 每个线程都存在属于自身单独而成的栈。当线程运行中实行一个方法之际, 会弄出一个栈帧, 栈帧里涵盖局部变量表(Local )、操作数栈( Stack)、指向当前方法所属的类的运行时常量池运行时常量池的概念在方法区部分会谈到的引用( to pool)、方法返回地址( )以及一些额外的附加信息, 如下图所示:有的线程, 会拥有上图里的一个栈。栈当中的数据, 是其所私有的, 不存在有会并发的问题。方法里的局部变量, 会被存储在局部变量表中, 这里面涵盖非静态变量, 还有方法的参数。要是属于基本类型, 那就存储其值, 对于引用类型而言, 存储的是引用。操作数栈是临时存储区域通过入栈和出栈来访问数据。1.成员变量为什么是线程不安全的有成员变量, 其存在静态与非静态的类别划分。若要剖析它们是不是线程安全的情况, 那就要判定它们到底是属于线程共享的类型, 还是属于非共享的类型。静态变量, 于JDK1.7以前, 被保存在方法区, 此方法区亦称作永久代, 它是线程共享的, 因而静态变量并非线程安全的。JDK1.7往后, 它直接被保存在堆中, 所以同样是非线程安全的。处在堆中的非静态成员变量, 是所有线程都能共享的, 正因能被所有线程共享, 所以它不属于线程安全的范畴。2. 局部变量为什么是线程安全的从关于线程的存储结构当中我们能够知晓, 局部变量是在栈帧里的局部变量表那儿进行存储的, 并且栈乃是线程所独自拥有的, 因而这是线程安全无误的。存在着一种应对并发的解决办法, 那便是将数据共享予以消除, 要是不存在共享那自然就不会产生并发方面的问题, 这个被称作线程关闭。2.1 局部变量一定是线程安全的吗我们先看如下代码public static StringBuffer sb(String str1, String str2) { StringBuffer sb new StringBuffer(); sb.append(str1); sb.append(str2); return sb; }答案当然不是线程安全的, 这是由于局部变量sb出现了溢出情况, 进而能够被别的方法进行操作修改。Java栈帧里存放的是局部变量表, 要是属于基本类型, 存放的便是值, 自然而然是线程唯一拥有的, 是线程安全的。要是属于引用类型, 那么于局部变量表里所保存的便是该引用, 然而实际的对象依旧是保存在堆当中的, 堆里面的数据乃是所有线程所共同享有的。倘若出现了溢出情况, 那就并非线程安全的了, 要是没有发生溢出, 那依旧是线程安全的。

相关新闻

Linux系统安全检测:chkrootkit原理、部署与实战指南

Linux系统安全检测:chkrootkit原理、部署与实战指南

1. 项目概述:为什么我们需要chkrootkit?在Linux运维和安全的圈子里,rootkit这个词,就像悬在头顶的达摩克利斯之剑。它不像暴力破解那样声势浩大,也不像DDoS攻击那样直接让你服务瘫痪。它是一种极其隐蔽的入侵后工具集&…

2026/10/17 6:25:45 阅读更多 →
Python实战:330道练习题系统巩固核心语法与常用库

Python实战:330道练习题系统巩固核心语法与常用库

很多Python初学者在学完基础语法后,常常陷入“不知道接下来该练什么”的迷茫。网上资料虽多,但要么过于零散不成体系,要么难度陡增让人望而却步。一套由浅入深、覆盖核心语法与常用库的练习题,是巩固知识、培养编程思维的最佳路径…

2026/10/17 7:52:34 阅读更多 →
uni-app Vite配置全解析:从基础到高级实战指南

uni-app Vite配置全解析:从基础到高级实战指南

1. 为什么需要为uni-app配置Vite? 如果你正在用uni-app开发跨端应用,并且项目是基于Vue 3的,那么你大概率已经接触到了Vite。官方从HBuilderX 3.6.0版本开始,为 vue3 、 vue3-vite 等编译器版本提供了Vite构建支持。很多开发者…

2026/10/17 22:52:51 阅读更多 →

最新新闻

SolidWorks机械设计插件:参数化建模与国标校核一体化工具

SolidWorks机械设计插件:参数化建模与国标校核一体化工具

简介:迈迪三维设计工具集是专为SolidWorks用户打造的机械设计增强插件,面向机械工程师、产品设计师及高校相关专业学习者,解决标准件调用繁琐、建模效率低、工程图模板不统一等实际问题。资源包共2000个文件,主体为1022个SolidWor…

2026/10/18 10:16:41 阅读更多 →
用VS Code插件快速查看HDF5文件结构与数据

用VS Code插件快速查看HDF5文件结构与数据

前几天同事丢给我一个五百多兆的.h5文件,说是仿真结果,让我先看看里面存了什么。我用记事本打开,全是乱码;用命令行一层层列结构,眼睛都快瞎了。后来我顺着文件名搜了一下,发现 VS Code 装个插件就能直接看…

2026/10/18 10:16:41 阅读更多 →
AiReadCode:让代码库自动变成一本可读的书

AiReadCode:让代码库自动变成一本可读的书

代码读不完,这是所有想深入源码的开发者都会遇到的事。我花了一段时间完整读透了 Spring AI Alibaba 这个开源框架的源码,读完之后最大的收获不是搞懂了某个调用链,而是意识到:源码阅读的产出方式有很大问题。零散笔记、IDE结构树…

2026/10/18 10:16:41 阅读更多 →
文本匹配算法实践:单塔与双塔模型对比及训练技巧

文本匹配算法实践:单塔与双塔模型对比及训练技巧

简介:面向文本匹配算法学习与毕业设计场景的 Python 工程,完整实现 PointWise(单塔)、DSSM(双塔)、Sentence BERT(双塔)三种主流模型,并配套商品评论与商品类别匹配数据集…

2026/10/18 10:16:41 阅读更多 →
git bisect 实战:用二分查找快速定位回归 bug

git bisect 实战:用二分查找快速定位回归 bug

上周我在一个维护了很久的“某老项目”里追一个诡异的回归bug:头天晚上发版前还好好的,第二天一上班,同事就跑来说某个核心接口直接崩了。git log一看,从上次稳定到崩掉之间有三十多个提交。按我以前的习惯,肯定是倒着…

2026/10/18 10:16:41 阅读更多 →
摩天大楼电梯仿真:从建模到调度的完整实践指南

摩天大楼电梯仿真:从建模到调度的完整实践指南

简介:基于Java实现的摩天大楼电梯类型与调度算法仿真项目,模拟真实电梯运行,覆盖单向、双向、观光、高速、消防等电梯建模,并实现FCFS、最近楼层优先、最少行程时间、预调度和群控算法。通过随机生成乘客流量,可对比不…

2026/10/18 10:15:41 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →