摘要: 废话不多说,直接看下面死锁代码,这是一个典型的死锁,线程1拿到A锁获取B锁,线程2拿到B锁获取A锁 我们使用编译并运行这段代码,结果一目了然了 实际上线程1永远获取不到B锁,线程2永远获取不到A锁,问题如何排查解决呢。 方式一: 通过jps+jstack命令 我们可以通过jps命令(jps位于jdk 阅读全文
posted @ 2019-09-01 22:41 梦飞翔up 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 概念:CountDownLatch是java.util.concurrent包中一个类,CountDownLatch只要提供的机制是多个(具体数量等于初始化CountDownLatch时count的值)线程都达到了预期状态或者完成了预期工作时触发事件,其他线程可以等待这个事件来触发自己后续的工作。等 阅读全文
posted @ 2019-08-30 15:16 梦飞翔up 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 一, 事务的一些基础知识简单回顾一下,讲的不是很深入,网上博客很多。 1,关于事务的四大特性:原子性、隔离性、一致性、持久性 本文不再赘述; 2,事务的隔离级别:读未提交,读已提交,可重复读,串行化(这里应该深入了解各个级别会出现什么问题,比如脏读,不可重复读,幻读) 3,事务的传播行为:事务传播行 阅读全文
posted @ 2019-08-20 16:55 梦飞翔up 阅读(14160) 评论(0) 推荐(1) 编辑
摘要: springboot版本:2.1.6.RELEASE SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties 或者 @ConfigurationProperties 等几个注 阅读全文
posted @ 2019-08-16 15:08 梦飞翔up 阅读(1517) 评论(1) 推荐(2) 编辑
摘要: 我们知道循环中操作db会导致连接数满,严重影响数据库性能。所以在对db进行DQL与DML时,根据业务逻辑尽量批量操作,这里我们介绍下使用mybatis批量更新mysql的两种方式。 方式一: 但Mybatis映射文件中的sql语句默认是不支持以" ; " 结尾的,也就是不支持多条sql语句的执行。所 阅读全文
posted @ 2019-08-16 09:52 梦飞翔up 阅读(982) 评论(0) 推荐(0) 编辑
摘要: 一.tk.mybatis已经为我们封装好了许多拆箱即用的通用mapper,但在实际的项目开发中想必不少小伙伴在数据库设计中都会采用逻辑删除这种方案,再去使用通用的mapper接口就不行了。这时候就需要我们封装一些扩展的通用Mapper接口。 二.项目中提供了大量现成的方法,这些方法可以作为扩展时的参 阅读全文
posted @ 2019-07-16 14:53 梦飞翔up 阅读(2488) 评论(0) 推荐(0) 编辑