发布时间:2026/8/22 12:05:35
同步方法与同步块那个是更好选择 在java 开发中我们在使用synchronized关键字对同步数据进行加锁时有两种写法一是同步方法另一种时同步方法块。代码如下/** * author Evan Walker * version 1.0 * desc 昂炎数据 https://www.ayshuju.com/home * date 2023/03/23 22:22:50 */ public class SynchronizeDemo { Object lock new Object(); /** * 第一种锁住整个静态method 类锁同步方法 */ public static synchronized void synchronizedMethodA() { //业务代码 } /** * 第一种相当于用类对象锁住代码块 类锁同步代码块 */ public static void synchronizedBlockA() { synchronized (SynchronizeDemo.class) { //业务代码 } } /** * 第二种使用一个互斥对象锁住代码块它可以这么理解多个线程想访问互斥代码块必须拿到mutex对象的锁。 * 然后后面的所有类型都可以用第一种类型来解释同步代码块 */ public void synchronizedBlockB() { synchronized (lock) { // 业务代码 } } /** * 第三种锁住整个非静态method 同步方法 */ public synchronized void synchronizedMethodC() { //业务代码 } /** * 第三种相当于用this对象来锁住方法同步代码块 */ public void synchronizedBlockC() { synchronized (this) { //业务代码 } } }上述代码描述了几种同步方法和同步代码块的写法。同步方法与同步块的区别同步方法同步方法直接在方法上加 synchronized 实现加锁。同步方法块同步代码块则在方法内部加锁在起方法内部实现synchronized关键字。同步方法与同步块那个是更好的选择同步代码块是更好的选择因为它不会锁住整个对象当然你也可以让它锁住整个对象意味着同步块之外的代码是异步执行的效率会更高。同步方法会锁住整个对象哪怕这个类中有对各不相关联的同步块这通常会导致他们停止执行并需要等待获取这个对象上的锁。同步代码块更要符合开放调用原则只在需要锁住的代码块锁住相应的对象这样从侧面来说可以避免死锁。请知道这样一条原则同步的范围越小越好。但也有例外Java锁粗化虽说同步的范围越少越好但在 Java 虚拟机中存在着一种叫做锁粗化的优化方法这种方法是把同步范围变大。比方说 StringBuffer 它是一个线程安全的类自然最常用的 append() 方法是一个同步方法写代码的时会反复 append 字符串这意味着要进行反复的加锁 - 解锁这对性能不利这意味着 Java 虚拟机在这条线程上要反复地在内核态和用户态之间进行切换因此 Java 虚拟机会将多次 append 方法调用的代码进行一个锁粗化的操作将多次的 append 的操作扩展到 append 方法的头尾变成一个大的同步块这样就减少了加锁 -- 解锁的次数有效地提升了代码执行的效率。

相关新闻

2026/8/22 12:00:34

界面控件DevExpress WPF拥有丰富SVG图像库,更好支持高DPI显示器

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。DevExpress新旧版本帮助…

2026/8/22 12:00:34

前端常见的基本数据类型

摘要:JavaScript 有 5 种简单基本数据类型,本篇结合思维导图梳理 number、string、boolean、undefined、null 核心知识点,适合前端入门复习。一、前言JS 的基本数据类型也叫原始值类型,日常写代码处处都会用到。把这几个基础类型搞…

2026/8/22 16:20:47

Vue3 Ant Design 中后台模板教程:5分钟跑通 vue3-antd-admin

Vue3 Ant Design 中后台模板教程:5分钟跑通 vue3-antd-admin 【免费下载链接】vue3-antd-admin 使用vue3ant-design-vuevitets开发的通用后台框架,实现了权限系统、动态菜单、表格集成快速使用等功能,简洁干净开箱即用。 项目地址: https:/…

2026/8/22 16:20:47

Java开发者面试突围:技术深度与策略解析

1. 燕双非背景下的Java面试突围战 作为非985/211院校出身的Java开发者(业内俗称"燕双非"),我在过去三年里经历了17场互联网大厂技术面试。从最初的一面挂到如今能从容应对阿里P7级技术考核,这段经历让我深刻认识到&…

2026/8/22 16:20:47

边缘AI时事:PTZ摄像机的边缘算力是怎么来的?

熟悉PTZ摄像机的朋友都知道,AI功能如今已经是标配,诸如自动跟踪、自动取景、自动框选、自动构图等等。但AI功能需要持续运行深度学习模型,对算力有持续需求,所以我们需要解决一个问题:“算力从哪来?部署在哪…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 20:14:07

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/22 1:39:53

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…