11 redis中分布式锁的实现

news/2024/12/22 9:59:58/
  1. 单机锁代码
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.LockSupport;public class AloneLock implements Lock {AtomicReference<Thread> owner = new AtomicReference<>();//队列--存放哪些没有抢到锁的线程LinkedBlockingQueue<Thread> waiters = new LinkedBlockingQueue<>();//实现加锁@Overridepublic void lock() {while (!owner.compareAndSet(null,Thread.currentThread())){waiters.add(Thread.currentThread());LockSupport.park();//让当前线程阻塞waiters.remove(Thread.currentThread());//解锁了,就需要把线程从等待列表中删除}}//实现解锁@Overridepublic void unlock() {if(owner.compareAndSet(Thread.currentThread(),null)){for (Object  object:waiters.toArray()){Thread  next= (Thread) object;LockSupport.unpark(next);}}}@Overridepublic void lockInterruptibly() throws InterruptedException {}@Overridepublic boolean tryLock() {return false;}@Overridepublic boolean tryLock(long time, TimeUnit unit) throws InterruptedException {return false;}@Overridepublic Condition newCondition() {return null;}
}
  1. 分布式锁

http://www.ppmy.cn/news/1230869.html

相关文章

如何解决requests库自动确定认证arded 类型

requests 库是一种非常强大的爬虫工具,可以用于快速构建高效和稳定的网络爬虫程序。对于经常使用爬虫IP用来网站爬虫反爬策略的我来说&#xff0c;下面遇到的问题应当值得我们思考一番。 问题背景 在使用requests库进行网络请求时&#xff0c;有时会遇到需要对目标服务进行认证…

c++模式之单例模式详解

c模式之单例模式详解 1.概念2.懒汉模式示例&#xff08;缺点&#xff09;3.懒汉模式线程安全4.饿汉式创建单例5.饿汉模式线程示例 1.概念 单例模式是指在整个系统生命周期内&#xff0c;保证一个类只能产生一个实例&#xff0c;确保该类的唯一性. 使用单例两个原因&#xff1a…

在 Windows 中关闭 Nginx 所有进程

在 Windows 中关闭 Nginx 所有进程并强制重启的命令如下&#xff1a; 打开命令提示符&#xff08;CMD&#xff09;。 输入以下命令来查找 Nginx 进程的 PID&#xff1a; tasklist /fi "imagename eq nginx.exe"此命令将列出所有名为 nginx.exe 的进程以及它们的 PID…

Visio免费版!Visio国产平替软件,终于被我找到啦!

作为一个职场人士&#xff0c;我经常需要绘制各种流程图和图表&#xff0c;而Visio一直是我使用的首选工具。但是&#xff0c;随着公司的发展和工作的需要&#xff0c;我逐渐发现了Visio的优点和不足。 首先&#xff0c;让我们来看看Visio的优点。Visio是一个专业的流程图和图…

JVS低代码表单设计:数据联动详解(多级数据级、数据回显等)

在这信息化时代&#xff0c;表单作为数据的收集和展示工具&#xff0c;已经渗透到不同的角落。JVS低代码对表单的设计和操作进行了不断的优化和创新。其中&#xff0c;联动回显作为一项重要的功能&#xff0c;无论是多级数据级联控制、组件的联动控制&#xff0c;还是多表的数据…

数据中心走向绿色低碳,液冷存储舍我其谁

引言&#xff1a;没有最冷&#xff0c;只有更冷&#xff0c;绿色低碳早已成为行业关键词。 【全球存储观察 &#xff5c; 科技热点关注】 每一次存储行业的创新&#xff0c;其根源离不开行业端的用户需求驱动。 近些年从数据中心建设的整体发展情况来看&#xff0c;从风冷到…

基于单片机GPS轨迹定位和里程统计系统

**单片机设计介绍&#xff0c; 基于单片机GPS轨迹定位和里程统计系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 一个基于单片机、GPS和里程计的轨迹定位和里程统计系统可以被设计成能够在移动的交通工具中精确定位车辆的位置…

裸片-PCBA

裸片 PCBA&#xff0c; 薄膜&#xff0c; 邦定-COB&#xff08;chip on board&#xff09;技术是指将裸芯片直接贴在PCB 板上&#xff0c;然后用铝线或金线进行电子连接的技术