重入锁

2018-11-21  本文已影响0人  Tommmmm

分布式事务:

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

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

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

三、解决方案
卡夫卡

JavaNIO和IO区别:

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

dubbo:

MQ架构:

重入锁:

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读