- 博客(6)
- 资源 (2)
- 收藏
- 关注
原创 JAVA多线程事务控制
问题背景:spring事务只对开启它的线程生效,如果在方法内开启了多个子线程,子线程内的操作不受事务的控制。解决问题:如果一个方法内开启了多个子线程,任意一个子线程异常。可以使全部子线程数据库操作回滚。核心思路:使用控制主线程和子线的两个CountDownWatch实现子线程的二段提交。思路步骤:①开启两个CountDownWatch,分别为childMonitor(初始计数器数量为,准备开启的子线程数)用于监控子线程和mainMonitor(初始计数器数量为1)用于监控主线程。 ...
2020-09-24 18:50:54 4883 1
原创 ArrayList源码解析
本篇文章为大家进行Java中的ArrayList源码解析。在进行正式解析前先给大家介绍下线性表的概念。线性表:线性表是最常用、最简单的一种数据结构,简言之,线性表是n个数据元素的有限序列。线性表中的每个数据元素最多只能又一个直接前趋元素,每个数据元素只能有一个直接后继元素;只有第一个元素没有直接前趋元素,而最后一个数据元素没后直接后继元素。线性表中的数据元素个数是该线性表的长度。线性表的结...
2020-03-17 17:22:16 255
原创 LinkedList源码解析(一)
本篇文章为大家进行Java中的LinkedList源码解析。在进行正式解析前先给大家介绍下线性表的概念。线性表:线性表是最常用、最简单的一种数据结构,简言之,线性表是n个数据元素的有限序列。线性表中的每个数据元素最多只能又一个直接前趋元素,每个数据元素只能有一个直接后继元素;只有第一个元素没有直接前趋元素,而最后一个数据元素没后直接后继元素。线性表中的数据元素个数是该线性表的长度。线性表的...
2019-12-14 16:44:27 321
原创 Thread方法总结
Thread的方法总结1:join();等待线程结束,剩下的线程才能执行,是同步方法。2:start();开始执行线程,是同步方法。会调用run()方法。3:checkAccess();确定当前运运行的线程是否具有修改此线程的权限。如果当前线程不允许访问此线程,则引发SecurityException。4:getName();获取此线程的名称。5:getId();返回...
2019-09-06 17:06:32 277
原创 我认识的BIO和NIO
简介:BIO:同步阻塞式IO。实现模式为1个连接对应一个线程。即每有1个新的请求时,就需要创建一个新的线程去处理,并且线程永远不会释放。如果这个连接不去做任何事情的话,会造成资源浪费。NIO:同步非阻塞式IO。实现模式为1个请求对应一个线程。即有一个新的请求时,会注册到操作系统TCP。而服务端通过查询TCP连接情况,去做对应的处理。即如果是有数据请求的连接才去开启新的线程处理它,处理完成线...
2019-08-10 15:55:14 187
原创 spring-boot项目jar包形式在linux的启动命令
1.前台启动java -jar xxx.jar其中xxx.jar是你项目打成的jar包2.后台启动nohup java -jar xxx.jar &其中xxx.jar是你项目打成的jar包当我们项目更新时,不能直接启动新jar包,要先查到端口占用的进程号kill掉,启动新jar包,更新的内容才会生效。步骤netstat -tunlp|grep 端口号 //...
2018-10-10 11:01:14 5117 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人