2022-06-20 09:52:21
74
0
0
事务不会回滚的原因
事务的回滚需要由spring代理的类才能回滚,因此如果不是注入进来的类(比如@Autowired或@Service),是不会进行回滚
如果有个A类,其中有a(),b()两个方法,a()方法调用了b()方法,a()方法加了回滚,b()方法出现异常,此时a()方法不会回滚。
java
2022-04-12 16:05:21
120
0
0
SELECT a.object_id, a.session_id, b.object_nameFROM v$locked_object a, dba_objects bWHERE a.object_id = b.object_idselect t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;alter system kill session '596,875'
2022-03-01 14:32:49
162
0
0
## 1. RestfulToolkitX
**作用:**
根据接口快速定位代码
**官方介绍:**

**使用感受:**
这个插件是我从接触IDEA就开始使用的了,但是我只使用了他的一个功能,就是CTRL+\,也是
java POI
2022-01-17 14:17:13
165
0
0
做Excel导出的时候,业务要求至少能导出10W条,复查了之前人写的代码,有很多问题,逐步优化。
### 1. 导出的Controller里,返回的是一个Result类
返回的是一个Result类,但是response里又set了response.setContentType("application/vnd.ms-excel;charset=UTF-8");这就很矛盾。告诉了要返回一个
java 线程
2021-11-02 09:14:36
196
0
0
死锁
两个或两个以上的线程在执行过程中,因争夺资源而造成的互相等待的现象,无外力作用将互相等待下去
发生必要条件
互斥条件
请求和保持条件
不剥夺条件
环路等待条件
发生死锁代码
package com.csyd.concurrency.example.deadLock;import lombok.extern.slf4j.Slf4j;@Slf4jpublic class DeadLock implements Runnable{ public int flag = 1; private static Object o1 = new Object(),
java 线程
2021-11-01 10:57:17
164
0
0
对比Thread和线程池
new Thread 弊端
每次 new Thread 新建对象,性能差
线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或OOM
缺少更多功能,如更多执行、定期执行、线程中断
线程池的好处
重用存在的线程,减少对象创建、消亡的开销,性能佳
可有效控制最大并发线程数,提高系统资源利用率,同时可以避免过多资源竞争,避免阻塞
提供定时执行,定期执行,单线程,并发数控制等功能
线程池-ThreadPoolExecutor(构造)
corePoolSize:核心线程数量
maximumPoolSize:线程最大
java 线程
2021-10-25 13:03:00
126
0
0
组件:
CountDownLatch
可以阻塞当前线程,同时只能有一个线程操作该计数器
代码用例
package com.csyd.concurrency.example.aqs;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;@Slf4jpublic class CountDownLatchExamp
java 线程
2021-10-12 17:18:03
210
0
0
发布对象
发布对象:使一个对象能被当前范围之外的代码所使用
对象逸出:一种错误的发布。当一个对象还没有构造完成时,就使它被其他线程所见
安全发布对象
四种方法
在静态初始化函数中初始化一个对象引用
将对象的引用保存到volatile类型域或者AtomicReference对象中
将对象的引用保存到某个正确构造对象的final类型域中
将对象的引用保存到一个由锁保护的域中
单例模式举例
懒汉模式
package com.csyd.concurrency.example.singleton;import com.csyd.concurrency.anno
java 线程
2021-10-12 16:01:21
204
0
0
线程安全
代码所在的进程有多个线程在同时运行,这些线程可能同时在运行同一段代码,如果每次运行结果和单线程运行一致,而且其他变量的值也和预期是一样的,则是线程安全的
线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据,造成所得到的数据是脏数据,也可能是计算时出现错误
并发模拟
Postman : Http请求模拟工具
Apache Bench(AB) : Apache附带的工具,测试网站性能
JMeter : Apache组织开发的压力测试工具
代码 : Semaphore、CountDownLatch等
这些模拟工具中,JMeter是最方便实用的,推荐学
java 线程
2021-09-24 18:10:14
227
0
0
cpu的缓存介绍
cpu多级缓存(MESI缓存一致性)
cpu频率太快,主存跟不上,就需要缓存处理
M : 修改,被修改过的,与主存不一致,未来需要写回主存
E : 独享,未被修改过,与主存的数据一致,任何时刻cpu读取内存时,允许变成S状态分享,修改时会变成M状态
S : 共享,与主存中一致,当修改后,可以变成I状态无效
I : 失效,有其他cpu修改了该缓存行
cpu多级缓存-乱序优化
cpu为了效率,会将执行顺序打乱,单核cpu无影响,但是多核cpu会出现问题
java内存模型(Java Memory Model,JMM)
规范了ja