一个对技术有狂热爱好的程序猿
[toc] 今天我们来聊聊分布式锁。 ## 使用场景 首先,我们看这样一个场景:客户下单的时候,我们调用库存中心进行减库存,那我们一般的操作都是 ``` update store set num = $num where id=$id ``` 这种通过设置库存的修改方式,我们知道在并发量高的时候会存在数据库的丢失更新,比如a,b当前两个事务,查询出来的库存都是5,a买了3个单
[TOC] ###前言 在上一篇[再说J.U.C之线程池(一)](https://www.atatech.org/articles/97394 "再说J.U.C之线程池(一)")中,我们已经从源码角度分析了线程池在提交任务以及执行任务的整个过程,那我们已经熟悉了这个过程之后,接下来就是要在实际的使用中,避免去踩一些坑,那我们就从几个实际当中用到的几个case来看下线程池在实际使用中需要注意
[TOC] ###线程池的基础架构 ####Executor ![这里写图片描述](http://img.blog.csdn.net/20171226163512722?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWkRyZWFtQm95/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/disso
[TOC] 上一讲我们讲述了线程池整个的过程,这一讲我们来先底层的3个组件,synchronized,Unsafe以及LockSupport ## Unsafe ### 常用api ``` /** * 获取对象指定Field对应的内存地址偏移量,可以理解为跟C++中的指针一样,获取到了属性的地址,在一个对象中 * 属性的偏移地址是固定的,不会发生变化
发表了文章
2018-02-11
发表了文章
2018-02-11
发表了文章
2018-02-11
发表了文章
2018-02-11