类锁与对象锁的致命区别揭秘
4. 现在的人直接看懂的普通话书面语来说, 同步加锁的是对象, 而不是代码部分。因此, 当你的类里面存在一个同步方法的时候, 这个方法有可能被两个完全不同的线程同时执行。实现这种情况的前提条件是, 每一个线程都必须自己创建一个这个类的实例,也就是每个线程持有的并不是同一个对象实例。所以, 只要满足每个线程各自创建独立该类的这种条件, 那么上述提到的那个同步方法的并发执行局面就会出现。5. 不同的对象实例所对应的方法, 它们之间是不存在互相干扰的情况的。这也就是说, 其他的线程仍然能够同时地访问属于同一个类的另一个对象实例中的相关方法。6. 关键字是不能继承的, 这一点大家要弄清楚, 也就是说, 当存在一个基类的方法 f(){}时, 在把它拿去给继承类的过程中, 它并不会自动变成继承类里面的 f(){}这种形式, 而是会发生一些变化, 变成了 f(){}的样子, 针对这种情况, 继承类这边是需要你来显式地去指定它的某一个方法就是那个方法。7.当你去给一个全局静态的对象加锁, 或者说是给某个类的本身这个层次的东西加上同步保护机制的时候, 这种保护动作其实是对所有存在的对象实例都产生影响的, 也就是说是整个类层面的控制。类锁举例我们对那个属于全局范围的东西, 给它加上一个锁头。1 public class MySynchronized extends Thread2 {3 private int val;45 private static Object lock new Object();67 public MySynchronized(int v)8 {9 val v;10 }1112 public void printVal(int v)13 {14 synchronized (lock)15 {16 while (true)17 {18 System.out.println(v);19 }20 }21 }2223 public void run()24 {25 printVal(val);26 }27 }对整个类加锁1publicclassMySynchronizedextendsThread2{3privateintval;45publicMySynchronized(intv)6{7 val v;8}910publicvoidprintVal(intv)11{12synchronized(MySynchronized.class)13{14while(true)15{16System.out.println(v);17}18}19}2021publicvoidrun()22{23printVal(val);24}25 }另外的锁例子常量的这种特殊的地方, 在于它和同一个对象是紧密相关的。public class MySynchronized extends Thread{private String name;private String val;public MySynchronized(String name, String v){this.name name;val v;}public void printVal(){synchronized (val){while (true){System.out.println(name val);}}}public void run(){printVal();}public static void main(String args[]){MySynchronized f1 new MySynchronized(Foo 1:, printVal);f1.start();MySynchronized f2 new MySynchronized(Foo 2:, printVal);f2.start();}}这里所给出的, 是关于那个针对静态方法以及针对非静态方法的一个总结性的东西, 它俩之间存在着一个非常明显的区别。/** 非静态方法:* 给对象加锁(可以理解为给这个对象的内存上锁,注意 只是这块内存,其他同类对象都会有各自的内存锁),这时候* 在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就会产生互斥* 静态方法:* 相当于在类上加锁(*.class 位于代码区,静态方法位于静态区域,这个类产生的对象公用这个静态方法,所以这块* 内存N个对象来竞争), 这时候,只要是这个类产生的对象,在调用这个静态方法时都会产生互斥*/

相关新闻

微信小程序智慧家政系统:Vue+SpringBoot+MySQL全栈实践

微信小程序智慧家政系统:Vue+SpringBoot+MySQL全栈实践

简介:基于微信小程序的智慧家政系统毕业设计项目,采用 Vue、SpringBoot 与 MySQL 构建,面向需要完成 Java 毕业设计的学生,以及希望快速上手家政服务类小程序开发的工程师。项目围绕家政服务线上管理场景,覆盖地址管理…

2026/10/18 13:22:57 阅读更多 →
SSM+Vue实战:猫咪寄养管理系统从选题到答辩全流程

SSM+Vue实战:猫咪寄养管理系统从选题到答辩全流程

每年毕设选题季,总有一批学生会纠结"到底做什么题目"。管理系统类是最大众的选择,而其中"猫咪寄养管理系统"这六个字,几乎每年都会出现在好几所高校的任务书里。这个题目的热度不是没有道理:业务实体不多不少…

2026/10/18 13:22:57 阅读更多 →
VC6+GDI横版游戏毕设:纯Win32实现物理引擎与地图驱动

VC6+GDI横版游戏毕设:纯Win32实现物理引擎与地图驱动

简介:本资源是一份面向计算机专业本科生的毕业设计级C游戏开发实战项目,聚焦Visual C 6.0环境下基于GDI的横版过关游戏实现,旨在帮助学习者掌握Windows图形编程、面向对象设计与经典游戏逻辑构建。项目完整复刻超级玛丽式玩法,涵盖…

2026/10/18 13:22:57 阅读更多 →

最新新闻

Hadoop电影推荐系统:从ZIP包到生产上线的工程实践

Hadoop电影推荐系统:从ZIP包到生产上线的工程实践

简介:本资源是一个基于Hadoop生态构建的电影推荐系统完整实现,面向大数据初学者、Java开发者及推荐算法实践者,解决海量用户行为数据下的个性化推荐建模与分布式计算落地问题。压缩包共1117个文件,涵盖379个PHP后端逻辑文件&#…

2026/10/18 14:48:46 阅读更多 →
PHP中医诊所后台管理系统源码解析与二次开发指南

PHP中医诊所后台管理系统源码解析与二次开发指南

简介:这是一套面向PHP开发者与医疗信息化学习者的开源中医诊所后台管理系统,基于PHP构建,配套预配置数据库,可快速搭建部署,适合用于课程设计、二次开发或诊所业务管理场景。压缩包共约2000个文件,整体12.4…

2026/10/18 14:48:46 阅读更多 →
KV Cache 深度解析:大模型长上下文推理为何越聊越慢?

KV Cache 深度解析:大模型长上下文推理为何越聊越慢?

如果你最近用过带长文档阅读功能的AI助手,大概率遇到过这个场景:前几轮问答秒回,但对话一旦超过几万字,每生成一个字都像在挤牙膏,有的平台甚至会直接提示"上下文过长"。很多人第一反应是"模型能力不行…

2026/10/18 14:48:46 阅读更多 →
重装系统后声卡不工作?音频驱动层级与安装顺序全解析

重装系统后声卡不工作?音频驱动层级与安装顺序全解析

1. 问题现象与核心症结定位重装系统本来是一件让人心情舒畅的事,系统盘格式化、垃圾清空、开机速度回到新机状态,结果右下角那个小喇叭图标上多了一个红叉,鼠标悬停提示“未安装音频输出设备”。点开声音设置,播放设备列表空空如也…

2026/10/18 14:48:46 阅读更多 →
MySBI+BenOS:RISC-V SBI启动调试与裸机OS手把手实验指南

MySBI+BenOS:RISC-V SBI启动调试与裸机OS手把手实验指南

简介:本资源是《RISC-V体系结构编程与实践》第二章配套的MySBI轻量级SBI接口与BenOS教学型RTOS内核实验代码,面向嵌入式系统开发者、操作系统课程学习者及RISC-V初学者,聚焦系统级编程能力培养与硬件-软件协同理解。压缩包共17个文件&#xf…

2026/10/18 14:48:46 阅读更多 →
YOLOv10舌象检测与DeepSeek诊断分析:从数据标注到工程落地

YOLOv10舌象检测与DeepSeek诊断分析:从数据标注到工程落地

1. 舌象检测的特殊性:这个任务和通用目标检测根本不是一回事1.1 舌象数据的三重难点做舌象检测之前,我以为它就是继承了一个普通单类目标检测任务。把任务拆开来看,你会发现问题远不止"把舌头框出来"这么简单。第一重难点是颜色即特…

2026/10/18 14:47:45 阅读更多 →

日新闻

基于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/18 12:16:16 阅读更多 →