大量数据topk-分桶+堆+多路并归解决方案
利用分桶、堆与多路归并解决 TopK 问题: 在处理大规模数据时,TopK 问题是一个常见且具有挑战性的任务,即从海量数据中找出最大(或最小)的 K 个元素。为了高效地解决这个问题,我们可以采用...
消息队列实现分布式事务–最终一致性
思路分析 首先描述下我这边的场景,也是很常见的一个异步调用场景: 即将服务A假设为某电商用户模块,服务B假设为电商活动模块。 我这边呢,假设用户支付多少钱,就返多少钱的一个代金券。 一致...
并发扣减库存系统设计
我们在做电商的时候,经常遇到下单之后需要扣减库存的业务,那这个业务我们怎么来实现呢? 传统的做法是: 用户下单,执行下单服务; 同时,扣减库存; 如果是并发较高的场景,为了保证可用和性...
spring的三级缓存
spring的三级缓存: Spring 容器的“三级缓存” Spring 容器的整个生命周期中,单例Bean对象是唯一的。即可以使用缓存来加速访问 Spring 源码中使用了大量的 Cache 手段,其中在循环依赖问题的...
spring 事务失效的 12 种场景
看这个:https://blog.csdn.net/hanjiaqian/article/details/120501741里面有12种失效场景以及如何解决。 在 spring 中为了支持编程式事务,专门提供了一个类:TransactionTemplate,在它的 exe...
volatile关键字
在Java中,使用volatile关键字修饰一个变量可以带来以下效果: 可见性:volatile保证了变量的可见性,即当一个线程修改了volatile变量的值时,新值对于其他线程来说是立即可见的。这意味着,如...
HashMap 在高并发场景下可能出现的性能问题以及如何规避这些问题
JDK1.8 之前 HashMap 底层是 数组和链表, 之后在之前基础上加上红黑树。 相比于之前的版本, JDK1.8 之后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)(将链表转换成红黑...
wait、notify、notifyAll的理解与使用
基础知识 Java 中,可以通过配合调用 Object 对象的 wait() 方法和 notify() 方法或 notifyAll() 方法来实现线程间的通信。 在线程中调用 wait() 方法,将阻塞当前线程,直至等到其他线程调用了...
前端学习中。。。。。。
首先我个人认为不要立即去看语法,先去了解vue组件化开发思想,了解完这个后,脑子才有一个大体的前端开发是怎么样的(其实就是组件搭配,比如:搜索框是一个组件,按钮是一个组件,标题也可以...
为什么不建议通过Executors构建线程池
Executors类看起来功能还是比较强大的,又用到了工厂模式、又有比较强的扩展性,重要的是用起来还比较方便,如: ExecutorService executor = Executors.newFixedThreadPool(nThreads) ; 即可创...