![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
文章平均质量分 83
爱叨叨的程序狗
码农,不只Coding.
展开
-
深入了解ThreadLocal:避免内存泄漏的陷阱与最佳实践
在深入讨论的内存泄漏问题之前,我们先来了解一下的基本概念。是Java中的一个工具类,提供了一种线程级别的数据隔离机制。通过,我们可以在每个线程中存储自己的数据副本,互不影响,从而简化了多线程编程中的共享数据问题。是一个强大的工具,能够在多线程环境中解决共享数据的问题。然而,开发者在使用时应当小心,特别是在长时间存在的线程和线程池等场景下,要注意及时清理,以避免内存泄漏的发生。通过正确的使用习惯和最佳实践,可以更好地发挥的优势,确保多线程环境下的数据安全和性能。原创 2023-12-12 15:37:12 · 991 阅读 · 0 评论 -
深入解析ThreadPoolTaskExecutor的阻塞队列技术选型
是Spring框架中强大的线程池实现,通过合理选择阻塞队列类型,我们可以更好地满足应用程序的需求,提高性能和稳定性。在实际应用中,根据具体场景调整线程池配置,选择适当的阻塞队列,将有助于构建出更为健壮和高效的多线程应用。希望本文对您理解的阻塞队列提供了一些有价值的信息。如果您有任何问题或建议,请随时在评论中分享。原创 2023-12-06 09:54:18 · 759 阅读 · 0 评论 -
订单场景-基于Redisson实现订单号生成
订单、指定长度随机码生成是业务系统中重要且不可避免的一个需求,往往在电商系统中,业务量、并发量庞大,如何不重复、快速、安全的生成一个订单号成了需要重点考虑的问题。当生成订单号的逻辑和订单创建、落库逻辑分开,每次点击提交订单时,前端调用单独的生成订单号接口,再拿着生成的订单号去请求订单创建、落库的逻辑,每次生成的订单号都不一致,这样便保证了每次的请求都不是重复的,接下来实现不重复的订单号逻辑即可。需要注意的是,使用分布式锁会增加系统的复杂度和开销,可能会影响系统的性能和可用性。原创 2023-12-01 15:52:10 · 910 阅读 · 1 评论 -
优雅的并发编程-CompletableFuture
以上是接口串行执行的逻辑,当前服务器环境一般都是多核心、多线程,服务器可以同时处理多个任务,如果此时还使用单线程去执行,有些“暴殄天物”,并且接口响应速度会比较慢,那么优化的方式就是开启多个线程去分别执行不同的逻辑,那么我们可以使用。单线程和多线程相比,举个不恰当的例子:当你为了报仇,踌躇满志上山叩拜师门,经过十年寒窗苦练、不舍昼夜的练习,终于学成归来下山复仇,结果仇家拿出AK 47一阵突突,云淡风轻的跟你说:“大人,时代变了”的无力感。原创 2023-11-08 21:36:39 · 273 阅读 · 0 评论 -
Reactor的Publisher与Subscriber
在计算机中,响应式变成或者反应式编程(Reactive Programming)是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地变大静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。原创 2022-10-30 09:51:19 · 969 阅读 · 0 评论 -
并发-MySQL乐观锁
场景商城有种商品仅剩一个库存,用户A的下单请求进入到后端接口,由于用户A的网络环境不太好,导致请求卡死,此时用户B也进入下单页面,由于用户A网络环境不好,并没有执行减库存操作,用户B查询到的库存也是1,那么用户B点击下单按钮,最终剩余一个库存却下单成功了两次,我们需要使用技术手段解决业务上的问题,即:保证不同线程请求进来,当前线程操作的数据没有被其他线程修改过。MySQL乐观锁使用version字段标识版本使用updateTime来标识版本单独新增字段表示版本或使用updateTime字段原创 2022-03-08 10:56:12 · 257 阅读 · 0 评论