前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >synchronized和Lock的区别

synchronized和Lock的区别

作者头像
灬沙师弟
发布于 2023-09-06 07:36:31
发布于 2023-09-06 07:36:31
18400
代码可运行
举报
文章被收录于专栏:Java面试教程Java面试教程
运行总次数:0
代码可运行

前言

最近了不起在面试,经常被问到关于synchronized和Lock的相关知识点。所以整理了一些相关资料,供大家一起学习。

synchronized

特性

synchronized是Java的关键字,是基于JVM底层的Monitor锁实现的,用于修饰方法或代码块。在JDK1.6之前,synchronized的锁性能较低,但是在JDK1.6开始,JDK对synchronized锁进行了大量的优化,同时引入了无锁、偏向锁、轻量级锁、重量级锁、锁消除、锁粗化等技术来提升synchronized锁的性能。

使用方法

synchronized有两种使用方法

  1. 锁代码块
  2. 锁方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class SynchronizedExample {
    public static void main(String[] args) {

        SynchronizedExample synchronizedExample = new SynchronizedExample();

        // 1.锁代码块
        synchronizedExample.syncCodeBlock();

        // 2.锁方法
        synchronizedExample.syncMethod();
    }

    private void syncCodeBlock() {
        synchronized (this) {
            System.out.println("sync code block");
        }
    }

    private synchronized void  syncMethod() {
        System.out.println("sync method");
    }
}

Lock

特性

Lock是Java并发包JUC下的接口,其有很多实现类,较为常用的是ReentrantLock,默认使用非公平锁。Lock需要进行手动加锁(lock)和解锁(unlock)。同时,Lock还有更强大的功能,如它的tryLock()方法可以非阻塞的去获取锁、使用Condition实现等待通知效果。

使用方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class LockExample {
    public static void main(String[] args) {

        Lock lock = new ReentrantLock();

        lock.lock();
        try {
            System.out.println("lock...");
        }finally {
            lock.unlock();
        }

    }
}

对比

特征

synchronized

Lock

锁类型

内置锁

显式锁

使用方式

关键字

对象实例化

可重入

可中断

公平性

不保证

可手动设置为公平或非公平

锁的数量

单一

可以创建多个

锁的灵活性

限制较多,无法扩展或自定义功能

提供更多灵活性,可以自定义功能

异常处理

由JVM自动处理

需要手动处理

总结

synchronized是一种简单且易于使用的锁机制,适合简单的线程同步需求。而Lock接口提供了更多的功能和灵活性,适用于复杂的同步场景。所以,选择哪一种锁需要基于具体的需求和设计。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java面试教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
2核2G4M 低至 65元/年,超大容量云硬盘 0.5折起!
在这个云计算风起云涌的时代,找到一款性价比高、性能稳定的云服务,是每一位创业者、开发者乃至个人用户的共同追求。腾讯云再次放出大招,为轻量新用户量身打造了一场前所未有的上云盛宴!
用户11208969
2024/08/18
1700
百微秒时延,腾讯云云硬盘CBS架构深度解密
导语 | 随着云计算的逐步普及,越来越多用户在云上部署其核心业务。大型数据库、高性能 NoSQL、日志检索、DevOps 等 IO 密集型场景对云上存储提出了更高的要求。本文是对腾讯云存储专家工程师王银虎在云+社区online的分享整理,介绍腾讯云云硬盘 CBS 团队在高性能实践方面所做的软硬件技术革新和演进,希望与大家一同交流。
腾讯云开发者
2020/09/21
6.6K0
强大、好用的离线笔记软件综合评测:优点、缺点、对比
对于很多笔记用户而言,选择适合自己的笔记软件是一件难事。选择免费还是付费笔记应用?选择支持 Markdown 语法的笔记软件?要求离线或者云笔记?诸如此类,等等。
数字花园
2022/06/26
12.5K0
强大、好用的离线笔记软件综合评测:优点、缺点、对比
硬盘大涨价?CG动画渲染师:云存储更香了
杨净 边策 发自 凹非寺 量子位 报道 | 公众号 QbitAI 挖矿的现在连硬盘都不放过了。 一块大容量硬盘涨价超过了100%,做视频的朋友现在是叫苦不迭。 u1s1(有一说一),云存储现在好像有点性价比那意思了。 这时候一定又有人说,云存储的读写速度拿来剪视频,真的不是开玩笑吗? 以前不一定,现在没准还真的可以。 我发四,这是我一动画渲染师朋友告诉我的。 “云渲染”是一种什么体验? 所谓渲染,作为模型到动画的一个关键步骤,需要大量算力来计算。 有这样一组数据。 CG动画经典《阿丽塔:战斗天使》,就
量子位
2023/03/10
1.1K0
硬盘大涨价?CG动画渲染师:云存储更香了
泛微与腾讯云TDSQL完成互认证,助力金融行业实现安全高效的协同办公
日前,泛微协同办公平台e-cology与腾讯云TDSQL完成产品兼容性互认证,本次兼容性互认证经腾讯云与泛微联合测试,得出一致结论:双方产品相互兼容、系统运行稳定、产品体验良好。腾讯云TDSQL与泛微协同办公平台e-cology完成适配后,双方将充分发挥在各自领域的专业优势,坚持以客户实际需求为基础,助力金融机构安全、敏捷地实现数字化转型。  企业级分布式数据库   腾讯云TDSQL 腾讯云企业级分布式数据库TDSQL是腾讯云打造的一款金融级数据库产品,具备数据强一致、金融级高可用、线性水平扩展
腾讯云数据库 TencentDB
2021/07/02
1.1K0
企业数据安全怎么做?专家给你5条建议
引言:数据安全对企业生存发展有着举足轻重的影响,数据资产的外泄、破坏都会导致企业无可挽回的经济损失和核心竞争力缺失,而往往绝大多数中小企业侧重的是业务的快速发展,忽略了数据安全重要性。近年来,企业由于自身的安全防护机制不严谨,引发的数据安全事件频发。抛开事件本身的人为因素不谈,如何从技术角度避免类似的事件发生,才是我们需要认真总结的。
技术美学
2020/02/28
3.1K0
企业数据安全怎么做?专家给你5条建议
从机关单位群聊保密须知,看高安全办公即时通讯的必要性
最近有一则题为《机关、单位微信工作群保密管理须知》 的推文在互联网上火了,这则《须知》从“建群先审批”、“日常严审核”、“事毕即解散”几个维度,从制度层面,建议机关、单位强化对微信工作群的保密管理。难能可贵的是,这则《须知》给出了具有实操性的建议,如建议机关、单位要规范群名统一为“XX部门XX工作群”,且名称变更要及时报告。应该说,不仅对机关、单位来说,对于各大企业和个人来说,这则《须知》的建议都有很强建设性。 在《须知》发布后,多家官方媒体进行了广泛转载,转载平台除了腾讯、网易、新浪、搜狐等头部平台外
罗超频道
2022/04/02
1.3K0
从机关单位群聊保密须知,看高安全办公即时通讯的必要性
腾讯云全新云硬盘!百微秒时延、超百万IOPS是如何炼成的?
引言 随着越来越多的用户开始将关键业务迁移上云,部分关键业务的场景如大型 SQL 数据库、NoSQL、视频编解码、推理训练等业务对存储提出了稳定低时延、高性能的业务诉求,CBS 的产品矩阵并不能很好地满足这类场景。 因此为了满足 IO 密集场景对云硬盘的要求,在历经过超半年的用户线上业务压力后,CBS 在极致性能、持续稳定、高可用性等多方面都有了进一步优化,推出了基于最新一代 CBS 3.0 存储引擎的增强型 SSD 云硬盘和极速型 SSD 云硬盘产品。其单路 IO 时延优化到了无限接近本地存储的 10
腾讯大讲堂
2020/08/28
3.1K0
国内首家!腾讯云密钥管理系统通过密码应用验证测试
数字经济时代,数据已经成为关键生产资料。运用密码技术对数据传输、流转、存储和使用等环节进行加密保护,是确保用户和企业信息安全的重要手段。
腾讯安全
2021/05/08
4.5K0
国内首家!腾讯云密钥管理系统通过密码应用验证测试
8款最好用的固定资产管理软件
固定资产作为企业生产经营的重要部分,越来越被众多企业主重视。之前,大部分公司会选择EXCEL来管理固定资产。在固定资产系统如雨后春笋般涌出的时代,大部分公司会选择一款固定资产管理软件来精细化管理固定资产。尤其是分公司和分支比较多的集团公司,或者资产量比较多的企业和单位。
易点易动固定资产管理系统
2020/07/22
3.9K1
如何使用腾讯云云硬盘API
腾讯云控制台允许您以类似于使用硬盘驱动器的方式管理腾讯云CVM的额外存储。只需点击腾讯云简化的GUI或图形用户界面,即可为我们的CVM添加云硬盘。但是,这不是一个在大型集群的实用方法,因此腾讯云提供了相关API。我们可以通过腾讯云官方命令行工具直接与API进行交互。
好烟
2018/08/13
5.4K0
非常好用的的10款办公应用神器?各自的优点是什么?
随着信息技术的不断发展,办公软件的应用越来越广泛。在这些办公应用中,有一些应用非常好用,可以提高工作效率和质量。本文将介绍中国国内非常好用的10款办公应用神器,并详细说明它们各自的优点。
Datainside
2023/06/15
6720
非常好用的的10款办公应用神器?各自的优点是什么?
有哪些好用的进销存系统值得推荐?
本人从事软件行业7年有余,对市面上常见的管理软件颇有了解,以下是我经过对30多家进销存系统的市场反馈和各方评价,而初步筛选出的几家比较好用、且带有免费版本的进销存系统。
informat低代码
2022/04/27
3.4K0
有哪些好用的进销存系统值得推荐?
腾讯安全面向广大企业免费开放远程办公安全保障服务
在这个特殊的新年,为了最大限度减少人员流动聚集,很多企业选择“云开工”模式,但远程办公虽然保障了“人身安全”,却存在一定的“信息安全”风险,涉及员工异地访问的身份识别、多地分散的终端安全防护、越权操作等问题,事关企业的核心数据资产安全。
腾讯安全
2020/02/06
2.3K0
腾讯安全面向广大企业免费开放远程办公安全保障服务
腾讯云首发企业云盘解决方案,无需开发、开箱即用
你还在为处理问题到处查找资料吗?还在因为在机场、酒店、家中由于地域的限制无法随时随地访问数据吗?还在因为硬盘故障或病毒导致数据丢失吗? 在这,我将给你分享一套完美的解决方案,你听我娓娓道来······ 9月17日,腾讯云正式发布 企业云盘解决方案,  云存储产品矩阵进一步丰富。企业云盘是腾讯云推出的一款基于云端存储、围绕非结构化数据管理的存储产品,企业云盘可为企业用户 提供文件存储、文件权限管理、在线文档协作等一体化解决方案,为企业构建从业务到数据,再到商业价值变现提供基础服务。 企业云盘提供一
云存储
2021/09/26
3.7K0
这几个好用文档笔记软件,你在用吗
前言 俗话说的好:“好记性不如烂笔头”,平时工作记录笔记的确是一个良好的习惯,做文档笔记可以在我们遗忘时进行回看,方便查找,代替人的大脑。有时程序写多了,很不愿意去强制记忆一些东西,那么这个工作就交给文档笔记去做就好了。下面介绍几款常用的文档笔记软件,你都习惯用哪一款? 1. 印象笔记 你可以在多种设备和平台间无缝同步每天的见闻、思考与灵感,一站式完成信息的收集备份、永久保存和高效整理。无拘无束,随时随地保持高效。 支持所有设备 在所有设备上安装印象笔记,无需担心电脑不在身边,随时随地保存和查阅信息 一键保
Linux兵工厂
2023/02/28
4.4K0
这几个好用文档笔记软件,你在用吗
一文讲透NAS:全方位解读网络附加存储
你还在为手机的存储空间而捉急吗?你还在为云盘非会员的下载速度而难过吗?甚至你还在为没有视频会员,到处借会员而焦虑吗?
你可以叫我可乐
2024/06/28
1.9K0
一文讲透NAS:全方位解读网络附加存储
一文透析腾讯移动办公安全解决方案
随着移动设备的高速发展,移动办公逐渐成为了现代办公的主流。随时随地用手机完成项目沟通、流程审批、文档传送、通知下发、视频会议等等,大大提升了办公的效率,员工可以灵活选择办公环境和办公设备。
腾讯安全
2019/12/13
2.2K0
一文透析腾讯移动办公安全解决方案
如何获取腾讯云硬盘格式化脚本?云硬盘有哪些优点?
如何获取腾讯云硬盘格式化脚本?很多客户都会对这个问题感兴趣,他们在购买云硬盘之后,已经使用了一段时间,由于需要存储的数据很多,所以云硬盘的剩余空间容量会变小,为了继续使用,客户可以进行格式化操作,在格式化之前要做好关键数据备份工作,并且要令服务器停止对外服务,以避免发生服务异常。
用户8715145
2021/12/30
4.1K0
云硬盘怎么挂载到linux?云硬盘可以挂载到任何系统吗?
云产品在现在的网络技术当中非常普遍和常用,很多大型的云产品公司推出了不同类型的硬盘以及云服务器,这些产品可以满足不同企业以及不同个人的网络用品需求,而且可以提供非常多丰富功能。云硬盘在某些公司或者个人使用当中已经取代了硬盘的功能,而且云硬盘拥有容易扩展以及存储文件安全的性能。现在来了解一下云硬盘怎么挂载到linux。
用户8715145
2022/03/23
12.7K0
推荐阅读
相关推荐
2核2G4M 低至 65元/年,超大容量云硬盘 0.5折起!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档