![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
分布式
分布式
GodSure0914
这个作者很懒,什么都没留下…
展开
-
你知道分布式事务的@GlobalLock注解是干什么的吗?
写隔离流程如下:分支事务1-开始|V 获取 本地锁|V 获取 全局锁 分支事务2-开始| |V 释放 本地锁 V 获取 本地锁| |V 释放 全局锁 V 获取 全局锁|V 释放 本地锁|V 释放 全局锁如上所示,一个分布式事务的锁获取流程:1)先获取到本地锁,这样你已经可以修改本地数据了,只是还不能本地事务提交2)而后,能否提交就是看能否获得全局锁3)获得了全局锁,意味着可以修改了,那么提交本地事原创 2021-05-17 14:25:05 · 1397 阅读 · 0 评论 -
java多线程学习---多个线程控制同一资源与线程不安全的问题
package com.sure.thread;//多个线程操作同一资源的方法//买票的例子//存在问题:该情况下线程不安全、数据紊乱public class ThreadForTicket implements Runnable {private int ticket=10;@Overridepublic void run() {while (true){if (ticket<0){break;}try {//模拟延时,不然会因为CPU运行速度过快看不到效果Thread原创 2021-03-01 21:58:26 · 173 阅读 · 2 评论 -
java多线程学习-网络图片下载
方法超级简单,写一个网络图片下载的类,开线程去调用就好了,需要引入common.io包.package com.sure.thread;import org.apache.commons.io.FileUtils;import java.io.File;import java.io.IOException;import java.net.URL;//Thread实现多线程下载图片public class ThreadForPicture extends Thread { priv原创 2021-02-28 22:39:24 · 89 阅读 · 0 评论 -
java多线程之yield方法
Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程。yield()让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。 import lombok.Data/** * @author Admin * @date 2021/2/25 9:41 */@Datapubli原创 2021-02-25 14:25:20 · 2315 阅读 · 0 评论 -
java多线程之join方法
jion使用环境:主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待子线程执行完成之后再结束。首先是不加join的情况:public class CallableDemo implements Runnable { /** * 2----join * @author Sure * @since 2021/2/25 11:50 * @param null : * @return null */ private原创 2021-02-25 13:56:16 · 185 阅读 · 1 评论 -
Executor和new Thread()
new Thread的弊端如下:a. 每次new Thread新建对象性能差。b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。c. 缺乏更多功能,如定时执行、定期执行、线程中断。相比new Thread,Java提供的四种线程池的好处在于:a. 重用存在的线程,减少对象创建、消亡的开销,性能佳。b. 可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。c. 提供定时执行、定期执行、单线程、并发数控制等功能。Exec原创 2021-02-25 10:33:19 · 296 阅读 · 1 评论