![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 91
个案命题
这个作者很懒,什么都没留下…
展开
-
并发编程的 StampedLock 你弄懂了吗?
1. 为什么引入StampedLock JDK8中新增StampedLock。 锁 并发度 ReentrantLock 读读互斥,读写互斥,写写互斥 ReentrantReadWriteLock 读读不互斥,读写互斥,写写互斥 StampedLock 读读不互斥,读写不互斥,写写互斥 从ReentrantLock到ReentrantReadWriteLock,再到StampedLock,读操作并发度依次提高。 ReentrantReadW...原创 2021-06-11 10:36:34 · 223 阅读 · 2 评论 -
面试官: 说一下线程池内部工作原理
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor类中的方法讲起,然后再讲述它的实现原理,接着给出了它的使用示例,最后讨论了一下如何合理配置线程池的大小。 1.线程池的原创 2021-06-08 10:48:55 · 146 阅读 · 0 评论 -
AQS原理剖析
并发编程是大厂面试中重点考察的问题。 此类问题回答的好坏会在很大程度上影响我们面试的得分。 1. AQS在java中的使用 给代码加锁,是java中处理并发问题的重要手段。 java中的很多锁都是基于抽象类AQS(AbstractQueuedSynchronizer)实现的。 如下表所示: 同步工具 同步工具与AQS的关联 ReentrantLock 使用AQS保存锁重复持有的次数。当一个线程获取锁时,ReentrantLock记录当前获得锁的线程标识,用于检测是否重复获取.原创 2021-06-01 15:59:48 · 224 阅读 · 0 评论 -
面试必问涨薪翻倍-分布式限流
什么是限流 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限流。 为什么要限流 Java程序员在大厂面试时 或者 想拿到一份不错的薪资时,肯定会涉及.原创 2021-05-31 10:46:23 · 86 阅读 · 0 评论