08 2020 档案

摘要:项目组内的老代码,遇到的问题是:使用周期性线程池定时调度执行某任务,非常偶然的,某次调度失败,并且后续定时调度任务停止; 排查日志,排除了OOM后,未见任何异常;很明显是当前任务执行时抛出了异常,并且未捕获该异常;但是最蛋疼的就是当前的代码实现压根看不出该任务抛出了什么异常,也没有任何辅助信息。。。 阅读全文
posted @ 2020-08-24 21:17 光头用沙宣 阅读(943) 评论(0) 推荐(0) 编辑
摘要:原子操作是指不会被线程调度机制打断的操作,也就是说在原子操作期间,不会出现线程上下文切换; JDK在java.util.concurrent.atomic包中提供了多个原子类,如下: 其中从DoubleAccumulator开始,是JDK1.8提供的采用分段思想的高性能原子类; 在多线程场景中,不可 阅读全文
posted @ 2020-08-19 21:54 光头用沙宣 阅读(213) 评论(0) 推荐(0) 编辑
摘要:前面提到,线程安全问题的源头有如下三个: 1、缓存带来的可见性问题 2、线程切换带来的原子性问题 3、编译优化,指令重排,带来的顺序性问题 其中1和3可以通过java提供的volatile关键字解决,而问题2的解决就需要借助java中的锁 synchronized关键字 java提供了synchro 阅读全文
posted @ 2020-08-18 12:25 光头用沙宣 阅读(251) 评论(0) 推荐(0) 编辑
摘要:JDBC简介 JDBC,Java DataBase Connectivity,是java提供的访问数据库的标准接口;不同的数据库厂商实现了该接口类作为数据库驱动,比如MySql提供的驱动jar包为mysql-connector-java; java提供了如下几个重要的接口类: 1、Connectio 阅读全文
posted @ 2020-08-11 21:26 光头用沙宣 阅读(123) 评论(0) 推荐(0) 编辑
摘要:IDEA创建mybatis配置文件模板 IDEA提供了spring框架的配置模板,但是未提供mybatis配置文件模板,因此需要自己创建模板,创建步骤如下: settings -> Editor -> File and Code template -> Files 然后点击加号,文件后缀名为xml, 阅读全文
posted @ 2020-08-10 22:51 光头用沙宣 阅读(277) 评论(0) 推荐(0) 编辑
摘要:项目中需要根据openapi 2.0接口定义自动生成指定框架代码,github中有对应的案例,不过生成的代码框架不符合当前需求,因此根据项目需要自定义了一个codegen插件,这里记录下插件流程 swagger-codegen项目github地址:https://github.com/swagger 阅读全文
posted @ 2020-08-09 11:16 光头用沙宣 阅读(4579) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示