Lock(锁)

article/2025/9/20 13:17:58

Lock(锁)

  • 从JDK5.0开始,Java提供了更强大的线程同步机制——通过显示定义同步锁对象来实现同步,同步锁使用Lock对象充当
  • java.util.concurrent.locks.Lock接口是控制多个线程对共享线程进行了访问的工具。锁提供了对共享资源的独占访问,每次只有一个线程对Lock对象加锁,线程开始访问共享资源的之前应先获得Lock对象
  • ReentrantLock(可重入锁) 类实现了 Lock , 它拥有与 synchronized 相同的并发性和内存语义,在实现线程安全的控制中,比较常用的是ReentrantLock , 可以显示加锁、释放锁。

使用ReentrantLock实现同步

  • lock()方法:上锁
  • unlock()方法:释放锁

在这里插入图片描述

package test;import java.util.concurrent.locks.ReentrantLock;//测试Lock锁
public class TestLock {public static void main(String[] args) {TestLock2 lock2 = new TestLock2();new Thread(lock2, "你").start();new Thread(lock2, "朋友").start();new Thread(lock2, "黄牛").start();}
}class TestLock2 implements Runnable {int ticketNum = 10;//定义lock锁private final ReentrantLock lock = new ReentrantLock();@Overridepublic void run() {while (true) {//加锁lock.lock();try {if (ticketNum > 0) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "拿到了票:" + ticketNum--);} else {System.out.println("票没有了");break;}} finally {//解锁lock.unlock();}}}
}

在这里插入图片描述

sychronized 与 Lock 的对比

  1. Lock是显示锁(手动开启和关闭,别忘记关闭锁) sychronized是隐式锁,出了作用域自动释放
  2. Lock只有代码块锁,synchronized有代码块和方法锁
  3. 使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。并且具有更好的扩展性(提供更多的子类)
  4. 优先使用顺序:Lock > 同步代码块(已经进入了方法体,分配了相应资源) > 同步方法(在方法体之外)

http://chatgpt.dhexx.cn/article/HjLu7QVU.shtml

相关文章

lock的使用

1、获取lock锁对象 2、通过lock锁对象创建Condition实例绑定到lock锁对象上 3、上锁:lock.lock() 4、try…catch执行业务 5、finally中释放锁:lock.unlock() package com.han.demo01;import java.util.concurrent.locks.Condition; import java.util.c…

如何理解Lock

显示锁 JDK层面提供了Lock锁都是通过Java提供的接口来手动解锁和释放锁的,所以在某种程度上,JDK中提供的Lock锁也叫显示锁、JDK提供的显示锁位于java.util.concurrent.locks包下,Lock接口的源码如下: public interface Lock {vo…

锁(Locks)

锁(Locks) 1 ReentrantLock 应用demo 可重入锁,是一种使用递归无堵塞的同步机制 比 synchronized 更强大、更灵活的锁机制,可以减少死锁发生的概率 默认为非公平锁,可以自定义为公平锁 底层采用 AQS 实现,通过内部 Sync 集成…

lock锁

目录 1. lock 基本用法 2. lock公平锁与非公平锁 3. lock注意事项 4. synchronized 与 lock区别 1. lock 基本用法 lock.lock(); try {} finally {lock.unlock() }或者try {lock.lock(); } finally {lock.unlock() }public class ThreadLock1 {public static void main(S…

LOCKED勒索病毒解密 数据恢复

什么是LOCKED勒索病毒 LOCKED勒索病毒是由Michael Gillespie发现的。该恶意程序旨在通过加密来阻止对存储在计算机上的文件的访问。为了解密他们的文件,鼓励受害者购买解密工具。与大多数此类程序一样,[LOCKED] 重命名所有加密文件,在本例中…

服务器数据中了locked勒索病毒,有关locked勒索病毒的介绍与预防建议

随着网络的普及和科技技术的发展,网络安全问题日益突出。而其中,勒索病毒就是一种常见的网络安全威胁。一旦企业的服务器数据库被勒索病毒攻击,会导致企业内部的重要数据被加密,给工作和生产生活带了极大的困扰。下面就为大家介绍…

locked 勒索软件

1.Locked介绍 Locked病毒属于Void Crypt 勒索软件家族。该勒索软件会加密 PC 上的所有用户数据(照片、文档、Excel 表格、音乐、视频等),将其特定扩展名添加到每个文件,并在每个包含加密文件的文件夹中创建文件。 2.我是如何在我…

MEID

MEID简介 Mobile Equipment IDentifier(MEID)是全球唯一的56bit移动终端标识号。标识号会被烧入终端里,并且不能被修改。可用来对移动式设备进行身份识别和跟踪。由于ESN号段是有限的资源,基本上耗尽,可能还有少量回收…

科谱|MEID表格如何填写,99开头,MEID怎么申请,MEID申请表填写

作为通信产品最常见的三大主流号码之一MEID最近这些年的存在感确实偏低了点,尽管如此还是有大量需要使用MEID号码的产品,及时快速准确的申请到号码还是必不可少的。 文化的差异和语言的不通会造成不大不小的麻烦,今天我们结合最新版的申请表…

关于安卓系统4.0/5.0/6.0获取单卡手机,双卡手机的imei1,imei2,meid(用反射来实现,史上最详细,最全面获取)--binbinyang

有的人问我要代码跟例子,上次在GITHUB上弄了一个,提供地址 给大家 https://github.com/binbinyYang/GetPhoneInfo https://github.com/binbinyYang/GetPhoneInfo -------------------------------------------------------- 最近这3天,一直在…

MEID 的构成

MEID 的构成如下,针对 Hex 格式: 最后一位是 CD,这个 CD 不是 MEID 的组成部分,真正的 MEID 是前 14 位。在手机与基站进行 MEID 检查时,手机提交的 MEID 不能包含 CD 位,否则就会出错。当初设计此 CD 位主…

Mina MEID/GSM Activator 1.0 三网信号激活,支持iOS12.0~14.8.1

Mina团队已经更新工具,现在支持MEID/GSM三网和两网解锁信号!支持iOS14.8系统,两网价格和三网价格一样。 Mina MEID/GSM Activator可以激活所有MEID/GSM二网、三网恢复信号,并且支持打电话、短信、4G流量上网,支持iPhon…

高通芯片联机读取修改串码 meid ESN wifi 蓝牙 sn等参数的操作解析{二}

上次我发了几个相关联机读写参数的帖子。很多友友询问有没有其他相关软件来解读参数的教程。今天就来个续集来解析参数读写 关于安卓机型写串码 改串码 端口开启和基带qcn等一些经验 高通联机修改IMEI等参数的相关解析 高通芯片基带相关的软件 QPST QXDM DFS等等&#xff0c…

说说移动设备的各种标识码(DeviceID, IMEI, UUID, UDID, OAID, IDFA, GAID)

转战广告行业,收集整理一波移动设备各种标识码的含义当做基础知识储备 一、名词解释 Device ID:设备ID。IMEI:(International Mobile Equipment Identity)国际移动设备标识的缩写。是由15位数字组成的“电子串号”&a…

Mina MEID/GSM Activator 1.0 三网信号激活,支持12.5.3~14.7

Mina团队已经更新工具,现在支持MEID/GSM三网和两网解锁信号!支持iOS14.7系统,两网价格和三网价格一样。 Mina MEID/GSM Activator可以激活所有MEID/GSM二网、三网恢复信号,并且支持打电话、短信、4G流量上网,支持iPhon…

Mina MEID Activator 2.120210512更新使用说明支持三网(移动、联通、电信)国行版手机解锁打电话4G苹果手机激活锁停用Hello密码锁绕ID屏幕锁密码

Mina MEID Activator 是由Minacriss开发的新工具。可以激活所有MEID三网的信号恢复,并且支持打电话、短信、4G流量上网。支持iPhone5sX直接所有型号,支持iOS12.5.2iOS14.4.2。MEID三网指:不小心忘记ID密码,而且已经刷机并且是激活…

关于IMEI、MEID、IMSI

关于IMEI、MEID、IMSI 简介 IMEI、MEID都是用于标识一台物理设备的ID信息。在Android 8.0以下系统提供的API中,会根据不同条件返回二者之一的信息。 IMEI: 国际移动设备识别码,是区别移动设备的标志,一般用于标识某一台独立的设…

2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程

Android篇 1 IMEI和MEID (1) IMEI (International Mobile Equipment Identity) 是国际移动设备身份码的缩写,国际移动装备辨识码,只有Android手机才获取的到,是由15位数字组成的"电子串号",比如像这样 35988103031435…

安卓唯一标识:IMEI,MEID,MAC地址,Android_id,UUID,OAID

目录 IMEI: MEID: MAC地址: Android_id: UUID: OAID: 安卓设备的唯一标识,获取的目的在于数据统计,广告归因分析等用途。常用作唯一标识的有IMEI,MEID,…

QA:MEID号申请、什么是MEID号、怎么申请MEID号、MEID号获取

本文671个字,正常大约需要阅读两分钟,完整阅读更精彩,欢迎点赞、转发或留言! Q:什么是MEID号? A: MEID 移动设备识别码(Mobile Equipment Identifier)是CDMA手机的身份识别码,也是…