首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
并发
订阅
Year
更多收藏集
微信扫码分享
微信
新浪微博
QQ
21篇文章 · 0订阅
【Java】@Transactional事务套着ReentrantLock锁,锁竟然失效超卖了
本文以空调租赁充值并发场景为背景,剖析Java中的超卖问题,提出乐观锁、悲观锁、分布式锁和代码级锁(如ReentrantLock)等解决方案。重点强调事务边界内的锁管理,确保数据一致性,有效预防超卖。
高并发下如何避免产生重复数据?
前言 最近测试给我提了一个bug,说我之前提供的一个批量复制商品的接口,产生了重复的商品数据。 追查原因之后发现,这个事情没想象中简单,可以说一波多折。 1. 需求 产品有个需求:用户选择一些品牌,点
学习多线程之CountDownLatch使用
我们今天来学习多线程中的另一个工具类CountDownLatch,名叫同步计数器。 和昨天的文章中的Semaphore信号量工具一样,都是实现多线程中锁的工具类。 那下面我们就来看一下这个工具类到
Java:并发不易,先学会用
我从事Java编程已经11年了,绝对是个老兵;但对于Java并发编程,我只能算是个新兵蛋子。我说这话估计要遭到某些高手的冷嘲热讽,但我并不感到害怕。 因为我知道,每年都会有很多很多的新人要加入Java编程的大军,他们对“并发”编程中遇到的问题也会有感到无助的时候。而我,非常乐意…
JAVA多线程使用场景和注意事项
我曾经对自己的小弟说,如果你实在搞不清楚什么时候用HashMap,什么时候用ConcurrentHashMap,那么就用后者,你的代码bug会很少。 编程不是炫技。大多数情况下,怎么把代码写简单,才是能力。 多线程生来就是复杂的,也是容易出错的。一些难以理解的概念,要规避。本文…
volatile原理技术知识整理
volatile是一种轻量且在有限的条件下线程安全技术,它保证修饰的变量的可见性和有序性,但非原子性。相对于synchronize高效,而常常跟synchronize配合使用。 一. Java内存模型 主存存放线程需要操作的变量,但线程并不直接操作主存。 每个线程读取主存变量都…
聊聊数据库与缓存数据一致性问题
数据库跟缓存,或者用Mysql和Redis来代替,想必每个CRUD boy都不会陌生。本文要聊的也是一个经典问题,就是以怎样的方式去操作数据库和缓存比较合理。 为什么必须要有过期时间?首先对于缓存来说,当它的命中率越高的时候,我们的系统性能也就越好。如果某个缓存项没有过期时间,…
为什么双重检查锁模式需要 volatile ?
双重检查锁定(Double check locked)模式经常会出现在一些框架源码中,目的是为了延迟初始化变量。这个模式还可以用来创建单例。下面来看一个 Spring 中双重检查锁定的例子。 这个例子中需要将配置文件加载到 handlerMappings中,由于读取资源比较耗时…
多线程,到底该设置多少个线程?
“不好了,线上服务器超时严重,请求非常慢,好像报连接数too many了,怎么办?“小伙伴们在反馈。一般我们的技术老大的处理方式,把连接数和线程池调大点,重启,再观察。 往往这个方式是应急措施,治标不治本,因为不知道问题的原因。 有个严重误区,以为线程池设置太小了,调大点请求就…