自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 黑马点评实战篇【过程笔记】-优惠券秒杀4

摘要:文章探讨乐观锁解决库存超卖的两种实现方式:版本号法(新增version字段)和CAS法(直接使用库存作为版本号)。测试发现CAS法在高并发下成功率低(仅21/200),原因是严格乐观锁导致数据变更即失败。改进方案是放宽条件,只要库存>0即可操作,使库存从100降至0,成功创建100个订单。这体现了根据业务场景调整乐观锁策略的必要性。(150字)

2025-09-16 09:25:40 318

原创 黑马点评实战篇【过程笔记】-优惠券秒杀3

摘要:在高并发场景下,优惠券秒杀功能出现了库存超卖问题(200用户并发导致库存-9)。这是由于MySQL库存查询和扣减非原子操作,多线程交叉执行所致。解决方案包括悲观锁(如synchronized)和乐观锁(版本号法/CAS),前者强制串行执行,后者通过版本校验实现安全更新。该问题本质是并发环境下共享资源的线程安全问题。(149字)

2025-09-16 09:21:38 282

原创 黑马点评实战篇-优惠券秒杀2

摘要:该代码实现了优惠券秒杀功能,主要流程包括:1)查询秒杀券信息;2)校验秒杀时间有效性;3)检查库存;4)使用@Transactional确保扣减库存和创建订单的原子性;5)生成分布式ID作为订单号;6)返回订单结果。关键点在于通过事务管理保证数据一致性,并处理了秒杀时间、库存等业务校验逻辑。

2025-09-15 20:10:42 199

原创 黑马点评实战篇-优惠券秒杀1

摘要:数据库自增ID在订单系统中存在规律性强和分表重复问题。分布式ID可实现全局唯一性,满足高可用、高性能、安全性和递增性要求。基于Redis的分布式ID生成方案结合时间戳、业务前缀和序列号,通过位运算拼接生成唯一ID。测试表明该方案能高效生成大量ID,确保系统在高并发场景下的可用性和安全性。

2025-09-15 20:08:06 400

原创 黑马点评中优惠券秒杀的演变【Java开发面试直接吟唱】

方案优缺点同步锁方案:实现简单,但性能低,扩展性差。Redis + 异步队列:高并发友好,复杂度高,需保证最终一致性。进一步优化引入本地缓存减少 Redis 压力。数据库分库分表缓解写入瓶颈。支付成功后异步更新库存,避免实时一致性要求。通过分层设计(缓存、异步、补偿)平衡性能与可靠性,是秒杀系统的核心思路。

2025-09-14 09:57:19 302

原创 缓存穿透【面试时直接唱给面试官听】

本文针对商铺信息查询中的缓存穿透问题,提出并对比了两种解决方案。背景是商铺数据读多写少,适合Redis缓存,但当恶意请求查询不存在的ID时,请求会直接打到数据库。解决方案一是缓存空值,将不存在的查询结果也缓存并设置TTL,简单有效但略有内存消耗;方案二是布隆过滤器,能预先判断数据是否存在但有误判风险且实现复杂。经分析,由于商铺数据量不大,最终选择了实现简单的缓存空值方案来解决缓存穿透问题。该方案平衡了效果与实现成本,有效降低了数据库压力。

2025-09-12 12:18:11 667

原创 分布式锁解决集群下一人一单超卖问题

本文介绍了使用Redis的setnx指令实现分布式锁来解决秒杀系统中的超卖问题。通过创建SimpleRedisLock类封装分布式锁的基本操作,包括获取锁(tryLock)和释放锁(unlock)。在秒杀业务逻辑中,通过用户ID作为锁的key,确保同一用户只能有一个请求获得锁,从而避免重复下单。获取锁成功后才执行减库存等操作,最后释放锁。这种方案相比本地锁(synchronized)能更好地支持分布式环境,解决了集群部署时的并发控制问题。

2025-09-11 17:28:51 262

原创 缓存击穿【面试时直接唱给面试官听】史上最全

所以总结一下,这是一个针对于热点数据、存在高并发请求的场景下的 存入Redis缓存,并且解决缓存击穿问题的一个工作内容。我考虑了常见的两种解决方案,最终根据应用场景选择了逻辑过期的方案解决。

2025-09-11 10:17:14 328

原创 0基础学习JavaSE第七天【找大厂实习】

数组是一个容器,用来存储同一数据类型的多个值。数组中的元素具有相同类型,且每个元素都有一个索引,索引从 0 开始。

2025-05-07 20:11:16 538

原创 半小时学会灵活运用Git【全】

工作流程图上的7个指令(clone+fetch+pull+checkout+add+commit+push)和2个常用指令(log+merge)

2025-05-06 19:41:25 206

原创 0基础学习JavaSE第六天【冲刺大厂实习】

Day06for语句用于执行固定次数的循环任务。

2025-05-06 19:37:25 443

原创 半小时学会灵活运用Git【二】

git remote add origin【远端名称】 git@gitee.com:ko666/git_test.git【仓库路径】git clone <仓库路径> [本地目录] 本地目录可以省略,会自动生成一个目录。ssh-keygen -t rsa 不断回车。

2025-05-05 19:10:24 299

原创 0基础学习JavaSE第五天【找大厂实习】

是一块区域,用于展示文本和图片。JLable构造方法● JLabel()创建一个不含图像,不含文本的 JLabel 对象● JLabel(String text)使用指定的文本创建一个 JLabel 对象● JLabel(Icon image)创建一个具有指定图像的 JLabel 对象。注意:如果多个组件摆放在同一个位置,后添加的组件,会被压在底部。是从下面往里塞的。

2025-05-05 19:07:32 677

原创 半小时学会灵活运用Git【一】

git status 【untracked files工作区| Changes to be committed即将被提交:在暂存区|nothing to commit, working tree clean已经提交到仓库了】git checkout -b 分支名。【HEAD指向谁,谁就是当前的分支】git checkout 分支名。git branch 分支名。

2025-05-04 16:18:45 310

原创 0基础学习JavaSE第四天【找大厂实习】

是一块区域,用于展示文本和图片。JLable构造方法● JLabel()创建一个不含图像,不含文本的 JLabel 对象● JLabel(String text)使用指定的文本创建一个 JLabel 对象● JLabel(Icon image)创建一个具有指定图像的 JLabel 对象。注意:如果多个组件摆放在同一个位置,后添加的组件,会被压在底部。是从下面往里塞的。

2025-05-04 16:12:50 733

原创 0基础速通java学习路线

swing可以不看。

2025-05-03 10:10:35 437

原创 0基础速通JavaSE第四天【冲击大厂实习】

面向对象:并不是一项技术,而是一种编程的指导思想。它的核心思想是:通过“对象”来组织程序,解决问题。为什么要学面向对象?:面向对象使得代码更加模块化、可维护、易理解,就像现实生活中解决问题的方式一样,面向对象使得编程变得简单高效。·类:是一组相关属性和行为的集合,类似于设计图。例如,在 Java 中,要创建一个对象,必须先有类。·类是模板,对象是根据类创建的实例。·每个类可以创建多个对象。示例:成员变量是类中的数据字段,定义在类的方法之外。成员方法是类的行为,定义在类中,通常不需要static关键字。打印对

2025-05-03 10:06:36 862

原创 0基础学习JavaSE第三天【找大厂实习】

流程控制语句用于。

2025-04-30 19:13:53 1053

原创 0基础学JavaSE第二天

Java基础语法Java 关键字不能作为变量名或方法名(如classpublicstatic·关键字的字母全部小写。·常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。

2025-04-29 15:58:55 801

原创 0基础学Javase

计算机是用来做数据计算和处理的。

2025-04-28 21:39:24 436

原创 手把手带读Micron-BERT: BERT-based Facial Micro-Expression Recognition

Step2:进行块交换操作,随机的选择一些块,将It+δ中的块与It对应的块交换位置,从而构成一个新的图像帧It/s,这个新的图像帧就是在原有It图像的基础上进行的改造得来的。又将新的图像帧It/s输入到模型中,任务是恢复原始的图像It,通过这样的训练过程,模型就能知道哪些块是被交换的,让模型在比较帧间的差异更加准确。将It+δ/c、It+δ和It/s输入到编码器中,每一个图像块会被线性投影到一个潜在向量中,还会进行位置编码,使模型不仅能识别每个块的内容,还能知道在图像中的相对位置。

2024-11-20 19:13:19 1329 6

原创 3-计算机五大组成部分补充

多核CPU:同时完成多件事。

2024-10-28 21:50:50 315

原创 2-计算机组成原理

1、帮助我们控制四肢2、运算+逻辑(判断)

2024-10-26 16:34:40 248

原创 1-什么是编程?

编程就是通过编程语言写出一个个的文件,而这堆文件会达到一个目的。

2024-10-25 21:39:08 335

原创 打开电脑突然桌面图标突然变大而且间隔很大

3.找到IconSpacing字符串值,双击该字符串值,修改为-1125,其中-1125为默认值。找到IconVerticalSpacing字符串值,双击该字符串值,修改为1-125,其中-1125为默认值.2.打开注册表编辑器后,双击左侧栏目将注册表子项依次定位至:HKEY_CURRENT_USER\ControlPanel\Desktop\WindowMetrics。1.按键盘Win键+R,打开“运行”窗口,输入“regedit”打开注册表编辑器.4.关闭注册表编辑器,重启电脑,桌面图标即恢复正常.

2024-10-14 17:24:53 4878

原创 新用户使用FileZilla往服务器上传输数据显示连接失败

我想要使用我们学校的云服务器,但是从昨天晚上到现在一直显示连接失败。刚刚才解决,写这篇帖子的目的是记录和能够帮助和我遇到相同问题的人。解决bug太开心了!首先是在学校云服务器上创建实例,导师这边有免费的gpu资源,还是挺好的,注意ssh里面有ip地址和端口号。我们需要在登录成功后重置密码,然后关闭实例再重启。密码:是每个用户自己的密码,并不是root的密码。如何从心连接一下服务器就成功了。主机:填ssh里面的ip地址。端口:填ssh里面的端口号。呵呵,并没有那么简单。可以开始传输数据了。

2024-10-13 13:37:58 448

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除