【并发】
文章平均质量分 81
TGB-Earnest
一位热爱英语的人
展开
-
【多线程-捕捉子线程异常情况】
一、问题描述当我们在点击数据导出的时候,页面转圈,而且查看接口返回的是200,正常。二、问题分析我们发现在数据导出成功的话,它的状态是1,当数据导不成功,它的状态是0。接下来我们看代码我们发现它开启了一个异步线程进行导出数据,所以它一定是异步线程的时候报的错,然后异步线程没有抛出、日志也没有打印,主线程又运行完了。所以从表面上看,根本看不出它的问题在哪里。(3)问题解决那我们就让它把具体的错误报出来,所以要更改代码。 new BuidExcelThread(zhitouSer原创 2022-05-11 14:02:38 · 580 阅读 · 0 评论 -
【多线程-安全性问题的解决】
多线程的安全性问题解析我们在使用多线程的时候,可以进行异步操作提高我们程序执行的效率,比如,我们一个页面需要3个接口,后端返回的时候将这个三个接口统一成一个接口执行,这三个接口在这个大接口中,如果按串行的方式执行,那么时间就是这三个接口所需时间之和,如果我们采用多线程的方式,那么返回的时间取决于这三个接口中所用时间最大的接口。我们再来看一下他的问题。package com.broky.multiThread.safeThread;/** * @author zxd * @date 2022-原创 2022-04-27 11:39:31 · 443 阅读 · 1 评论 -
【并发】Synchronized深度解析
CASCAS底层是如何实现的?lock cmpxchg指令如果在比较替换的时候被其他线程打断呢?所以必须是原子的在CPU的底层中在单CPU不用加lock ,在多CPU必须加lock用户态和内核态要说锁升级,需要了解用户态和内核态,作为操作系统来说,它做的一些操作时不允许普通程序做的。所以为了保证操作系统的健壮性,所以需要把指令分类,有的指令作为通过用户是不行的,比如说:想访问显卡的内容需要通过操作系统来。从逻辑上,内存的执行过程分为了用户态(只能访问用户能访问的指令)和内核态(执行在内原创 2021-07-17 22:28:32 · 921 阅读 · 77 评论 -
【并发】ReentrantLock中公平锁和非公平锁的理解
【前言】ReentrantLock 是在JavaSE5之后,并发包中新增了Lock接口用来实现锁功能,它提供了与synchronized关键字类似的同步功能。同时ReentrantLock也是重入锁,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁,该锁还支持获取锁时的公平和非公平性选择。【公平锁】 static final class FairSync extends Sync { private static final long serialVersionU原创 2021-07-11 15:47:02 · 1128 阅读 · 36 评论