![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 53
java相关技术板块
springbooot
这个作者很懒,什么都没留下…
展开
-
synchronized
synchronized俗称 ‘同步锁’,是java程序解决并发问题的同步方案。主要作用有三种:原子性:确保线程互斥地访问同步代码;可见性:保证共享变量的修改能够及时可见,其实是通过Java内存模型中的“对一个变量unlock操作之前,必须要同步到主内存中;如果对一个变量进行lock操作,则将会清空工作内存中此变量的值,在执行引擎使用此变量前,需要重新从主内存中load操作或assign操作初始化变量值” 来保证的.有序性:有效解决重排序问题.原创 2023-11-30 23:48:47 · 841 阅读 · 0 评论 -
synchronized锁状态的转换(不可逆)
2. 如果不是,则使用CAS将当前线程的ID替换Mard Word,如果成功则表示当前线程获得偏向锁,置 偏向标志位1。4. 当前线程使用CAS将对象头的Mark Word替换为锁记录指针,如果成功,当前线程获得锁。1. 检测Mark Word里面是不是当前线程的ID,如果是,表示当前线程处于偏向锁。5. 如果失败,表示其他线程竞争锁,当前线程便尝试使用自旋来获取锁。3. 如果失败,则说明发生竞争,撤销偏向锁,进而升级为轻量级锁。7. 如果自旋失败,则升级为重量级锁。原创 2023-11-13 09:36:06 · 28 阅读 · 0 评论 -
问题一、接口逻辑复杂请求慢情景分析
有返回值慢接口,后端异步缓存结果,前端多次取值,避免了请求超时,长时间占用资源、阻塞线程等问题。异步执行,所需时间为10s,为三者之最;执行体执行完非异步逻辑,便立即返回。2、有返回值:后端异步执行,缓存结果(redis...),前端间断多次请求取值。接口业务逻辑相互关联不大,多个线程同时并发执行,提高响应时间。3、接口业务逻辑相互关联不大:多个线程并发执行,最后统一结果返回。1、没返回值:异步执行,前后端分离,避免请求阻塞,占用资源。顺序执行,所需时间为16s,为三者之和。原创 2023-11-03 00:41:32 · 58 阅读 · 0 评论