<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[翎逸的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ZDreamBoy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ZDreamBoy]]></copyright><item><title><![CDATA[再聊分布式锁]]></title><link>https://blog.youkuaiyun.com/ZDreamBoy/article/details/79278638</link><guid>https://blog.youkuaiyun.com/ZDreamBoy/article/details/79278638</guid><author>ZDreamBoy</author><pubDate>Thu, 08 Feb 2018 12:40:38 +0800</pubDate><description><![CDATA[


使用场景
数据库实现
加x锁
唯一键
优点
缺点




zk的实现
获取锁
释放锁
优点
缺点


redis实现
简单实现1
简单实现2
错误实现


tair的实现







今天我们来聊聊分布式锁。



使用场景

首先，我们看这样一个场景：客户下单的时候，我们调用库存中心进行减库存，那我们一般的操作都是



update store set num = $num where...]]></description><category></category></item><item><title><![CDATA[再说J.U.C之并发基础工具]]></title><link>https://blog.youkuaiyun.com/ZDreamBoy/article/details/79094431</link><guid>https://blog.youkuaiyun.com/ZDreamBoy/article/details/79094431</guid><author>ZDreamBoy</author><pubDate>Thu, 01 Feb 2018 12:26:21 +0800</pubDate><description><![CDATA[Unsafe
常用api
Unsafe实例的获取
api实例使用
对象属性偏移量获取
修改对象属性值
获取对象实例
CAS
总线锁定
缓存行锁定
Atomic系列原子类
缺点






synchronized
同步原理
对象头
偏向锁
轻量级锁
获取锁
释放锁






LockSupportparkunpark
demo使用
waitnotify比较
LockSupport源码分析


小]]></description><category></category></item><item><title><![CDATA[再说线程池（二）]]></title><link>https://blog.youkuaiyun.com/ZDreamBoy/article/details/78913808</link><guid>https://blog.youkuaiyun.com/ZDreamBoy/article/details/78913808</guid><author>ZDreamBoy</author><pubDate>Wed, 27 Dec 2017 16:38:14 +0800</pubDate><description><![CDATA[前言
实战总结
命名
线程池的关闭
异常处理
子线程吞并异常
java线程的异常处理
submit异常吞并
submitRunnable task前言在上一篇再说线程池（一）中，我们已经从源码角度分析了线程池在提交任务以及执行任务的整个过程，那我们已经熟悉了这个过程之后，接下来就是要在实际的使用中，避免去踩一些坑，那我们就从几个实际当中用到的几个case来看下线程池在实际使用中需要注意的问题。实战总]]></description><category></category></item><item><title><![CDATA[再说线程池（一）]]></title><link>https://blog.youkuaiyun.com/ZDreamBoy/article/details/78904575</link><guid>https://blog.youkuaiyun.com/ZDreamBoy/article/details/78904575</guid><author>ZDreamBoy</author><pubDate>Tue, 26 Dec 2017 17:21:12 +0800</pubDate><description><![CDATA[线程池的基础架构
Executor
ExecutorService
AbstractExecutorService
ThreadPoolExecutor
Executors
Future
RunnableFuture
FutureTask


ThreadPoolExecutor源码分析
线程池的状态
任务提交
addWorker
Worker
runWorker
getTask
processW]]></description><category></category></item><item><title><![CDATA[逆流而上读书笔记1]]></title><link>https://blog.youkuaiyun.com/ZDreamBoy/article/details/78634927</link><guid>https://blog.youkuaiyun.com/ZDreamBoy/article/details/78634927</guid><author>ZDreamBoy</author><pubDate>Sat, 25 Nov 2017 23:32:09 +0800</pubDate><description><![CDATA[买了一本阿里巴巴的逆流而这本书，今天专门花一下午时间好好看了下，还是有些收获的，简单总结下下午读书的笔记业务案例发红包场景对于我们经常使用的发红包场景，业务逻辑也比较简单，发一个红包，需要从预算端先进行扣款，然后红包端再进行发红包解决方案1. 二阶段提交— 在事务开始的第一阶段，首先预算端进行冻结要扣除的预算，红包端需要插入一条不可用的红包记录 
— 在事务的第二阶段，即第一阶段的两步都已经完成，开]]></description><category></category></item></channel></rss>