重入锁

作者: Tommmmm | 来源:发表于2018-11-21 00:11 被阅读0次

分布式事务:

一、事务的ACID特性:
事务可以看作等价于Transaction,是指一组连续的操作,这些操作组合成一个逻辑的、完整的操作

  • 原子性A
    原子性要求,事务是一个不可分割的执行单元,事务中的所有操作要么全都执行,要么全都不执行。

  • 一致性C
    一致性要求,事务在开始前和结束后,数据库的完整性约束没有被破坏。

  • 隔离性I
    事务的执行是相互独立的,它们不会相互干扰,一个事务不会看到另一个正在运行过程中的事务的数据。

  • 持久性D
    持久性要求,一个事务完成之后,事务的执行结果必须是持久化保存的。

二、分布式事务
分布式事务:一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。

例子:一个公司之内,用户的资产分为多个部分,如余额,积分,优惠券等。在公司内部有可能积分功能由一个微服务团队维护,优惠券又是另外的团队维护。这样的话就无法保证积分扣减了之后,优惠券能否扣减成功

三、解决方案
卡夫卡

JavaNIO和IO区别:

  • IO 面向流每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。
    阻塞:当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程在此期间不能再干任何事情了。

  • NIO的缓冲:数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动。

NIO则是非阻塞的,每一次数据读写调用都会立即返回,并将目前可读(或可写)的内容写入缓冲区或者从缓冲区中输出,即使当前没有可用数据。

  • 简单地说:Java IO当一个inputstream或outputstream在进行read()或write()操作时,是一直处于等待状态的,直到有数据读/写入后才进行处理。而NIO是非阻塞式的,当进行读写操作时,只会返回当前已经准备好的数据,没有就返回空,这样当前线程就可以处理其他的事情,提高了资源的使用率

dubbo:

MQ架构:

重入锁:

重进入是指任意线程在获取到锁之后,再次获取该锁而不会被该锁所阻塞
每个锁都关联了一个线程持有者计数器

  • 线程再次获取锁:锁需要识别获取锁的现场是否为当前占据锁的线程,如果是,则再次成功获取;释放锁时计数器自减,当计数器为0时,锁释放成功。

其它线程请求该锁,则必须等待;而该持有锁的线程如果再次请求这个锁,就可以再次拿到这个锁。

ReentrantLock 构造器的一个参数是 boolean 值,它选择想要一个 公平锁,还是不公平锁。公平锁使线程按照请求锁的顺序依次获得锁

TryLock():当获取锁时,如果其他线程持有该锁,无可用锁资源,直接返回false,这时候线程不用阻塞等待,可以先去做其他事情;

相关文章

  • java.util.concurrent.locks.Reent

    什么是重入锁 重入锁就是指重复进入锁,它表示该锁能够支持一个线程对资源的重复加锁。 重入锁继承与实现关系 重入锁的...

  • ReentrantLock 源码分析

    锁的基本概念 可重入锁 Reentrant 就是可重入的意思,如果锁具备可重入性,则称作为可重入锁。像synchr...

  • ReentrantLock重入锁

    一、ReentrantLock重入锁 1、ReentrantLock重入锁简介 ReentrantLock可以完全...

  • Java并发编程-重入锁

    章节目录 什么是重入锁 底层实现-如何实现重入 公平与非公平获取锁的区别与底层实现 1.什么是重入锁 1.1 重入...

  • Java高并发实战——同步控制工具

    (1)、重入锁(ReentrantLock) 重入锁使用java.util.concurrent.locks.Re...

  • Java中的各种锁

    一个线程中的多个流程能不能获取同一把锁:可重入锁和非可重入锁 可重入锁 可重入性:表明了锁的分配机制,是基于线程的...

  • java可重入锁

    可重入概念: java的可重入锁: 可重入锁的一种实现方式: 可重入锁的两种使用例子: 例子1: 例子2: 例子1...

  • Java多线程 ReentrantLock CAS

    重入锁死 Reentrance Lockout 重入锁死可能会发生在如果一个线程重入一个锁中,ReadWriteL...

  • 各种锁的概念

    锁的概念 可重入不可重入公平锁非公平锁锁中断通过一个故事理解可重入锁的机制 - 小勇DW3 - 博客园[https...

  • java并发-独占锁与共享锁,公平锁与非公平锁,重入锁与非重入锁

    java并发-乐观锁与悲观锁,独占锁与共享锁,公平锁与非公平锁,重入锁与非重入锁 java 中的锁 -- 偏向锁、...

网友评论

      本文标题:重入锁

      本文链接:https://www.haomeiwen.com/subject/deoifqtx.html