2020年11月10日

线程池中的线程如果抛异常会怎么样

摘要: 看到一篇不错的文章,让我有思路也写写关于线程池,本文主要关注线程池里的任务抛了异常怎么办 一 Thread能捕获异常吗 public class ThreadExceptionTest { public static class InitialtiveThread implements Runnab 阅读全文

posted @ 2020-11-10 18:25 MaXianZhe 阅读(522) 评论(0) 推荐(0) 编辑

AQS共享锁源码分析

摘要: 一 共享锁和排他锁的不同 排他锁中state的含义是初始值0,每次重入就加1,释放就减1,完全释放完必须是0 共享锁state初始值是大于0的正数,表示可共享的数量,获取一次就减1,减到0则不能再获取 二 共享锁的入口 public final void acquireShared(int arg) 阅读全文

posted @ 2020-11-10 15:51 MaXianZhe 阅读(388) 评论(0) 推荐(0) 编辑

2020年11月9日

ConcurrentHashMap put 和 remove分析

摘要: 一 put final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw new NullPointerException();//注意 和hashamp不同,concur 阅读全文

posted @ 2020-11-09 14:58 MaXianZhe 阅读(262) 评论(0) 推荐(0) 编辑

2020年11月6日

Mybatis的动态sql和StatementHandler

摘要: 一年前为了在公司刷积分还写过关于mybatis的动态sql的原理,一年后就发现自己有点忘了,再写一次加深印象 一 初始化 还是先从MapperStatement说起 XMLMapperBuilder.buildStatementFromContext private void buildStatem 阅读全文

posted @ 2020-11-06 20:01 MaXianZhe 阅读(395) 评论(0) 推荐(0) 编辑

Mybatis和Spring整合也是能用BatchExecutor的

摘要: https://www.cnblogs.com/juniorMa/p/13930715.html 这篇文章讨论了Mybatis和Spring整合后,batch不起作用,看来我有打脸了,写完了后我反复思考终于想通了,是我的测试方法有问题。 因为我是循环执行的service里面的方法,这个方法是每次都会 阅读全文

posted @ 2020-11-06 10:03 MaXianZhe 阅读(681) 评论(0) 推荐(0) 编辑

2020年11月5日

Mybatis和Spring整合后sqlsession啥时候关闭的

摘要: https://www.cnblogs.com/juniorMa/p/13933192.html 在上一篇中,讲到一个非常重要的知识点,那就是每一个mapper对象的代理类执行方法的时候,都是每次都会new 一个SqlSession出来 但是我当时还有两个疑问 1 在SqlSessionInterc 阅读全文

posted @ 2020-11-05 22:43 MaXianZhe 阅读(1875) 评论(0) 推荐(0) 编辑

Mybatis是怎么执行一条语句的

摘要: 根据官方的推荐方式,通过mapper的方式执行sql,mapper的方式就是动态代理 所以,我们就先看动态代理的入口 一 MapperMethod public class MapperProxy<T> implements InvocationHandler, Serializable { pri 阅读全文

posted @ 2020-11-05 19:03 MaXianZhe 阅读(236) 评论(0) 推荐(0) 编辑

Mybatis和Spring的整合原理

摘要: 上一篇提到了和Spring整合后,Mybatis的BatchExecutor无法真正生效,本篇就好好分析分析这里面的原因 一 配置文件 <!-- 配置sqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.sprin 阅读全文

posted @ 2020-11-05 18:09 MaXianZhe 阅读(807) 评论(0) 推荐(0) 编辑

与Spring整合的Mybatis没法真正使用BatchExecutor

摘要: 标题可能有点懵人,我要表达的意思就是在和Spring整合后,Mybatis的确能够使用到BatchExecutor,但是看现象不是批量执行的,而是单条执行。 先上代码 @Test public void testAddUser() throws InterruptedException{ for ( 阅读全文

posted @ 2020-11-05 11:25 MaXianZhe 阅读(954) 评论(2) 推荐(0) 编辑

2020年11月4日

用户态和内核态IO过程

摘要: 熟悉mysql和kafka的刷脏页流程后,都知道内存中的脏页不会立刻刷到磁盘,下面就细化下流程 写操作: 用户调用 fwrite 把数据写入 C 库标准 IObuffer 后就返回,即写操作通常是异 步操作; 数据写入 C 库标准 IObuffer 后,不会立即刷新到磁盘,会将多次小数据量相邻写操作 阅读全文

posted @ 2020-11-04 12:19 MaXianZhe 阅读(723) 评论(0) 推荐(0) 编辑

导航