- 博客(1561)
- 收藏
- 关注
原创 GuLi商城-商品服务-API-三级分类-查询-树形展示三级分类数据
3、启动项目,看nacos服务列表。5、登录看页面效果OK。1、网关服务配置路由。
2024-03-25 22:34:41 209
原创 ThreadLocal-案例编码实战
需求变更:希望各自分灶吃饭,各凭销售本事提成,按照出单数各自统计-------比如房产中介销售。问题描述:5个销售买房子,集团只关心销售总量的准确统计数,按照总销售额统计,方便集团公。司给部分发送奖金--------群雄逐鹿起纷争------为了数据安全只能加锁。都有自己的销售额指标,自己专属自己的,不和别人参和。----人手一份天下安。因为每个Thread内有自己的实例副本且该副本只有当前线程自己使用。统一设置初始值,但是每个线程对这个值得修改都是各自线程互相独立得。
2024-03-17 22:26:43 25
原创 MAC-键盘command快捷键、设置windows快捷键
在 Windows PC 专用键盘上,请用 Alt 键代替 Option 键,用 Ctrl 键或 Windows 标志键代替。设置windows快捷键。Command 键。
2024-03-02 22:34:10 259
原创 原子类-原子操作增强类理论入门、LongAdder和LongAccumulator简介
原子类之LongAdder和LongAccumulator简介。
2024-01-21 22:28:47 71
原创 原子类-对象的属性修改原子类案例2
需求:多线程并发调用一个类的初始化方法,如果未被初始化过,将执行初始化工作。AtomicReferenceFieldUpdater案例演示。要求只能被初始化一次,只有一个线程操作成功。
2024-01-18 23:36:58 42
原创 原子类-对象的属性修改原子类理论、对象的属性修改原子类案例
AtomicIntegerFieldUpdater使用案例。以一种线程安全的方式操作非线程安全对象内的某些字段。对象的属性修改原子类。
2024-01-16 23:01:07 60
原创 原子类-引用类型原子类
该类将整数值与引用关联起来,可用于解决原子的更新数据和数据的版本号,可以解决使用 CAS 进行原子更新时可能出现的 ABA 问题。AtomicMarkableReference与AtomicStampedReference一样也可以解决ABA的问题,两者。AtomicMarkableReference是通过boolean型的标识来判断数据是否有更改过。唯一的区别是,AtomicStampedReference 是通过int类型的版本号,而。业务场景中,不关心引用变量被修改了几次,只是单纯的关心是否更改过。
2024-01-16 22:01:27 55
原创 原子类-入门介绍和分类说明、基本类型原子类、Join和CountDownLatch都可以让一个线程等待子线程完成
Atomic翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学。反应中是不可分割的。在我们这里Atomic是指一个操作是不可中断的。即使是在多个线程一起执。方法一:加时间,等待其他线程执行完,练习可以使用,实际开发不可以用,时间不好确定。结果出乎意料,不是50000,说明其他线程没有结束,main线程就打印了。行的时候,一个操作一旦开始,就不会被其他线程干扰。方法二:thread.join()等待子线程跑完。方法三:CountDownLatch。基本类型原子类常用API简介。
2024-01-14 23:11:27 276
原创 CAS-两大缺点、AtomicStampedReference入门
AtomicStampedReference带戳记流水的简单演示(单线程)1、循环时间长开销很大。版本号时间戳原子引用。
2024-01-02 21:52:09 408
原创 CAS-手写自旋锁
CAS是实现自旋锁的基础,CAS利用CPU指令保证了操作的原子性,以达到锁的效果,至于自旋。所谓自旋锁就是通过while循环实现的,让拿到锁的线程进入临界区执行代码,让没有拿到锁的线。CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程。锁,当线程发现锁被占用时,会不断循环判断锁的状态,直到获取。获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-程不会造成干扰的情况下执行,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。
2023-12-27 23:17:33 386
原创 CAS-源码分析引出Unsafe类、Unsafe类详解
问题:我们知道i++是线程不安全的,那AtomicInteger.getAndIncrement()如何保证原子性?Unsafe类是CAS的核心类,由于Java方法无法直接访问底层系统,需要通过本地(native)方法来。注意:Unsafe类中的所有方法都是native修饰的,也就是说Unsafe类中的所有方法都直接调用操作。sun.misc包中,其内部方法操作可以像C的指针一样直接操作内存,因此Java中CAS操作的执行依。访问,Unsafe相当于一个后门,基于该类可以直接操作特定内存的数据。
2023-12-20 22:13:36 378
原创 CAS-原理简介
CAS(compare and swap),中文翻译为比较并交换,实现并发算法时常用到的一种技术,用于保。多线程环境中使用原子类保证线程安全i++(基本数据类型)---------->类似于乐观锁。证共享变量的原子性更新,它包含三个操作数---内存位置、预期原值与更新值。多线程环境中不使用原子类保证线程安全i++(基本数据类型)
2023-12-19 22:09:19 400
原创 List去重-使用distinctByKey方法根据对象的属性进行去重
【代码】List去重-使用distinctByKey方法根据对象的属性进行去重。
2023-12-18 16:17:58 440
原创 volatile-之小总结
凭什么我们Java写了一个volatile关键字,系统底层加入内存屏障?两者的关系如何勾搭?是一种屏障指令,它使得CPU或编译器对屏障指令的前和后所发出的内存操作执行一个排序的约。读操作时加入屏障,线程私有工作内存的数据失效,重新回到主物理内存中获取最新值。volatile写之前的操作,都禁止重排序到volatile之后。volatile读之后的操作,都禁止重排序到volatile之前。写操作时加入屏障,强制将线程私有工作内存的数据刷回主物理内存。volatile写之后volatile读,禁止重排序。
2023-11-30 20:58:09 415
原创 IDEA-快捷键大全
41 ctrl + alt + h 查看方法的多重重写结构。49 ctrl + shift + h 查看哪些方法被调用。9 ctrl + shift + enter 向上开始新的一行。47 ctrl + shift + q 快速搜索类中的错误。48 ctrl + shift + v 选择粘贴的内容。18 ctrl + alrt + / 提示方法参数类型。32 alt + shift + c 收起所有的方法。33 alt + shift + x 打开所有的方法。
2023-11-29 11:16:04 1056
原创 Guli商城-商品服务-API-三级分类-配置网关路由与路径重写
报错:org.yaml.snakeyaml.parser.ParserException: while parsing a block collection。准备在moudles下新建product文件夹,新建category.vue。修改对应下面网关的配置网关端口号88,前端api开头的请求都走网关。缩进格式不对,重新改下,注意- id之间有空格,启动ok。点击分类维护的路径是:product/category。新建category.vue,保存后,刷新页面。启动网关服务,看有没有注册到nacos中。
2023-11-09 23:47:03 157
原创 volatile-日常使用场景
原理是:利用volatile保证读操作的可见性,利用synchronized保证符合操作的原子性。作为一个布尔状态标志,用于指示发生了一个重要的一次性事件,例如完成初始化或任务结束。当读远多于写,结合使用内部锁和volatile变量来减少同步的开销。问题描述:首先设定一个加锁的单例模式场景。
2023-11-06 23:32:43 134
原创 volatile-禁重排案例详解
在每一个volatile写操作前面插入一个StoreStore屏障--->StoreStore屏障可以保证在volatile写之前,其前面所有的普通写操作都已经刷新到主内存中。在每一个volatile写操作后面插入一个StoreLoad屏障--->StoreLoad屏障的作用是避免volatile写与后面可能有的volatile读/写操作重排序。在每一个volatile读操作后面插入一个LoadLoad屏障--->LoadLoad屏障用来禁止处理器把上面的volatile读与下面的普通读重排序。
2023-11-05 23:01:48 196
空空如也
2023年最流行的Java技术是什么?
2023-02-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人