![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程与并发
文章平均质量分 90
traveler100
吾行吾道,虽远必至。
展开
-
还有比Redis更骚的分布式锁的实现方式吗?有,etcd!
分布式锁 关于为什么要有分布式锁这个东西,欢迎阅读我的zk分布式锁的实现,介绍了单机高并发、分布式高并发的解决方案: 用ZooKeeper实现分布式锁 这里再切入本例将使用的场景模拟:商品秒杀,或者说高并发下,对于商品库存扣减操作。我用一个SpringBoot小项目模拟一下该操作。 本例用到的技术栈: SpringBoot Redis etcd 在正式肝代码之前,先来对etcd分布式锁实现的机制和原理做一个了解。 etcd分布式锁实现的基础机制 Lease机制 租约机制(TTL,Time To Live原创 2020-10-24 12:11:32 · 230 阅读 · 0 评论 -
记一次线上调优:我用线程池ThreadPoolExecutor处理任务和Redis做缓存查询,将程序效率提升了5倍!
痛苦的源头 我们线上有个小程序,主要用来实时查询某省所有地市上报的一些信息,这些信息在后台,每5分钟推送一次Excel文件到我们的Kafka服务,这些信息就存储在Excel文件中。 我要做的是,监听Kafka消息,得到Excel文件后,处理16个地市的消息,并将结果存储为图片(比较耗时),处理完之后,提供给小程序查询。 为了追求开发速度,我直接按照地市顺序解析了Excel,截图,将图片url以及一些相关信息存储在MySQL数据库。 但是,问题出现了: 虽然勉强能够保证大部分时候5分钟内能处理完16个地市的原创 2020-09-08 12:10:30 · 658 阅读 · 0 评论 -
从一道面试题进入Java并发新机制---J.U.C
什么是J.U.C? 它是Java java.util.concurrent包的缩写,从包的名称就可以看出,它应该主要提供一些线程同步的类。 这个包下面的类提供了多种实现线程同步的方式,还有诸如Executor、Callable、Future、ExecutorService等耳熟能详的接口。 本着天天向上的原则,非常有必要学习它。 一道面试题 实现一个容器,提供两个方法add,size,实现两个线程: 线程1,向容器中添加10个元素到容器中; 线程2,实时监控容器元素个数,当元素个数到5个时,线程2给出提.原创 2020-08-27 23:58:27 · 135 阅读 · 0 评论 -
synchronized底层实现知多少?synchronized加锁还会升级?
还记得当初我们刚接触Java或者刚写Java代码时怎么处理多线程访问共享数据的吗?加锁synchronized。但是,why?为什么加了synchronized就能保证共享数据一致了呢? 带着这样的疑问,我们来深入底层探究一下synchronized的实现原理。 synchronized实现细节 Java代码实现 我们先来了看下如果多线程间竞争共享资源,不采取措施会出现什么情况: public class TestSync implements Runnable { private int c.原创 2020-08-26 17:04:37 · 212 阅读 · 0 评论