• 欢迎访问 winrains 的个人网站!
  • 本网站主要从互联网整理和收集了与Java、网络安全、Linux等技术相关的文章,供学习和研究使用。如有侵权,请留言告知,谢谢!

标签:锁

Java技术

公平锁与非公平锁的对比

公平锁与非公平锁的对比
1. 问题 在上一篇文章中结合源码介绍了公平锁和非公平锁的实现【文章链接】。这一篇文章将从公平性和性能方面对比一下两者。 在阅读本文之前,可以先思考一下下面两个问题。 1. 非公平锁一定不公平吗? 2. 公平锁与非公平锁的性能谁更好? 2. 对比 主要从公平性和性能这两个方面来对比一下公平锁和非公平锁。 2.1 公平性 在上一篇文章的总结处,提……继续阅读 »

winrains 2个月前 (04-23) 15浏览 0评论 0个赞

MySQL

MySQL 事务与锁详解

MySQL 事务与锁详解
1 什么是数据库的事务? 1.1 事务的典型场景 比如下单,会操作订单表,资金表,物流表等等,这个时候我们需要让这些操作都在一个事务里面完成。在金融的系统里面事务配置是很常见的,比如行内转账的这种操作,如果我们把它简单地理解为一个账户的余额增加,另一个账户的余额减少的情况(当然实际上要比这复杂),那么这两个动作一定是同时成功或者同时失败的。 1.2 事务的定……继续阅读 »

winrains 3个月前 (03-31) 18浏览 0评论 0个赞

Java技术

Java 锁的深入理解

Java 锁的深入理解
1 Lock接口 锁是用来控制多个线程访问同一个共享资源的方式,一般来说,一个锁能防止多个线程同时访问共享资源,在Lock接口出来之前,Java是通过synchronized关键字来实现锁的功能,而Java1.5之后,并发包新增了Lock接口(以及相关实现类)用来实现锁的功能,它提供了与synchronized关键字类似的同步功能,只是在使用方式上有所不同,……继续阅读 »

winrains 3个月前 (03-31) 15浏览 0评论 0个赞

数据库

聊一聊数据库中的锁

聊一聊数据库中的锁
背景 数据库中有一张叫后宫佳丽的表,每天都有几百万新的小姐姐插到表中,光阴荏苒,夜以继日,日久生情,时间长了,表中就有了几十亿的小姐姐数据,看到几十亿的小姐姐,每到晚上,我可愁死了,这么多小姐姐,我翻张牌呢? 办法当然是精兵简政,删除那些age>18的,给年轻的小姐姐们留位置… 于是我在数据库中添加了一个定时执行的小程序,每到周日,就自动……继续阅读 »

winrains 4个月前 (03-21) 9浏览 0评论 0个赞

Java技术

图解并发包中锁的通用实现

图解并发包中锁的通用实现
导读 这篇文章我们来聊聊Java并发包中锁的实现。因为这其中涉及到了一点数据结构和线程挂起、唤醒等处理流程,我将源码中的关键逻辑绘制成图片的格式,方便大家有一个更加直观的理解。 阅读完本篇文章,你将了解到: 抽象同步器AQS的实现原理 ReentrantLock实现原理 非公平锁和公平锁实现的区别 基于这些内容,您也可以自己进一步探索可中断锁的实现原理……继续阅读 »

winrains 4个月前 (03-21) 21浏览 0评论 0个赞

Java技术

Java 各种锁介绍

Java 各种锁介绍
Java 锁分类 Java 中的锁有很多,可以按照不同的功能、种类进行分类,下面是我对 Java 中一些常用锁的分类,包括一些基本的概述 从线程是否需要对资源加锁可以分为 悲观锁 和 乐观锁 从资源已被锁定,线程是否阻塞可以分为 自旋锁 从多个线程并发访问资源,也就是 Synchronized 可以分为 无锁、偏向锁、 轻量级锁 和 重量级锁 从锁的公……继续阅读 »

winrains 4个月前 (03-07) 18浏览 0评论 0个赞

Java技术

逐行分析AQS源码(4):Condition接口实现

逐行分析AQS源码(4):Condition接口实现
前言 本篇文章是基于线程间的同步与通信(4)——Lock 和 Condtion 这篇文章写的,在那篇文章中,我们分析了Condition接口所定义的方法,本篇我们就来看看AQS对于Condition接口的这些接口方法的具体实现。 下文中笔者将假设读者已经阅读过那篇文章,或者已经了解了相关的背景知识。 系列文章目录 概述 我们在前面介绍Conditon的时候说……继续阅读 »

winrains 4个月前 (03-07) 9浏览 0评论 0个赞

Java技术

逐行分析AQS源码(3):共享锁的获取与释放

逐行分析AQS源码(3):共享锁的获取与释放
前言 前面两篇我们以ReentrantLock为例了解了AQS独占锁的获取与释放,本篇我们来看看共享锁。由于AQS对于共享锁与独占锁的实现框架比较类似,因此如果你搞定了前面的独占锁模式,则共享锁也就很容易弄懂了。 系列文章目录 共享锁与独占锁的区别 共享锁与独占锁最大的区别在于,独占锁是独占的,排他的,因此在独占锁中有一个exclusiveOwnerThre……继续阅读 »

winrains 4个月前 (03-07) 10浏览 0评论 0个赞

Java技术

逐行分析AQS源码(2):独占锁的释放

逐行分析AQS源码(2):独占锁的释放
前言 系列文章目录 上一篇文章 我们逐行分析了独占锁的获取操作, 本篇文章我们来看看独占锁的释放。如果前面的锁的获取流程你已经趟过一遍了, 那锁的释放部分就很简单了, 这篇文章我们直接开始看源码. 开始之前先提一句, JAVA的内置锁在退出临界区之后是会自动释放锁的, 但是ReentrantLock这样的显式锁是需要自己显式的释放的, 所以在加锁之后一定不要……继续阅读 »

winrains 4个月前 (03-07) 19浏览 0评论 0个赞

Java技术

逐行分析AQS源码(1):独占锁的获取

逐行分析AQS源码(1):独占锁的获取
前言 AQS(AbstractQueuedSynchronizer)是JAVA中众多锁以及并发工具的基础,其底层采用乐观锁,大量使用了CAS操作, 并且在冲突时,采用自旋方式重试,以实现轻量级和高效地获取锁。 AQS虽然被定义为抽象类,但事实上它并不包含任何抽象方法。这是因为AQS是被设计来支持多种用途的,如果定义抽象方法,则子类在继承时必须要覆写所有的抽象……继续阅读 »

winrains 4个月前 (03-07) 22浏览 0评论 0个赞