java
java相关
:8080
这个作者很懒,什么都没留下…
展开
-
Java分布式锁及解决方案
分布式锁的使用场景?使用分布式锁必须要满足以下条件:(1)系统是一个分布式系统,java的锁已经锁不住共享资源了;(2)操作共享资源;(3)同步访问,即多个进程同时操作共享资源;分布式锁使用场景示例:消费积分在很多系统里都有,信用卡系统、电商网站等通过积分换礼品等,这里「消费积分」这个操作典型的需要使用锁的场景。「事件A:」以积分兑换礼品为例来讲,完整的积分消费过程简单分成3步:A1:用户选中商品,发起兑换提交订单。A2:系统读取用户剩余积分,判断用户当前积分是否充足。A3:积分充足则扣原创 2020-09-01 21:16:33 · 638 阅读 · 0 评论 -
CAS中的ABA问题
ABA问题是CAS机制中出现的一个问题,这里先说明一下CAS和原子操作:CAS:Compare And Swap,比较并交换。是java.util.concurrent包实现的区别于同步锁synchronized同步锁的一种乐观锁。CAS有三个操作数,内存值V,预期值A,要修改的值B,当且仅当内存值V与预期值A相等时,将内存值V修改为B,否则什么也不做。原子操作:“原子”代表最小的执行单位,该操作在执行完毕前不会被任何其他任务或者事件打断。AtomicInteger类的compareAndSet通过原原创 2020-09-01 16:15:40 · 7771 阅读 · 9 评论 -
Java反射机制--常用方法及示例
Java发射机制是在运行状态中使用的,在运行状态中,我们可以通过获取类的字节码文件对象来动态获取对象信息以及动态调用对象方法。有时我们会遇到这样的业务场景,在程序之前,不知道具体要调用的对象方法。在程序运行中,需要动态地根据传递过来的对象参数来进行动态调用,这就需要使用到反射机制。查看Java API与反射相关的类有:类名作用Class代表类或接口的实体Constructor代表类的构造方法Field代表类的成员变量Method代表类的成员方法1.C原创 2020-06-23 10:18:32 · 201 阅读 · 0 评论 -
springboot整合redis实现消息队列--异步接收、多线程发送
1.新建springgboot项目 新建springboot项目redis-queue.2.引入依赖 引入相关依赖,其中用到了lombok,需要安装lombok插件。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s原创 2020-06-18 17:09:01 · 4517 阅读 · 6 评论