- 博客(27)
- 收藏
- 关注
原创 PostgreSQL使用explain
通过使用和命令,用户可以获得更详细的查询执行计划信息,从而更好地理解查询的性能瓶颈并进行优化。这些命令在分析复杂查询和优化数据库性能时非常有用。
2024-12-20 14:54:35
1303
原创 Linux监控java进程内存与CPU使用情况
根据测试情况来看,VmRSS 不等于 堆内存大小。个人猜测RSS值可能还包含了元空间等,但是通过开启jmx监控java进程的非堆内存占用情况,与VmRSS值还是差距悬殊。具体包含哪些值可参考“为什么Java进程使用的内存(RSS)比Heap Size大”根据参考博文来看,VmRSS值与top命令返回的RES值是一致的(执行top命令后,按s键)。但是我们公司设备上top命令没有返回RES值,返回的是RSS值,实际测试时发现RSS值与VmRSS值不完全一致,但是也差不多。top命令返回的%CPU值。
2024-12-20 14:52:06
620
原创 ThreadLocal理解
个人理解:以Thread的角度来看,使用了一个map用来存储这个线程中的对象,key为ThreadLocal对象,value为实际想存储的对象。也就是说,一个线程可以存多个对象,通过不同的ThreadLocal对象进行区分实际存储的对象。以ThreadLocal的角度来看,ThreadLocal变量本身不存数据,只是提供了get(), set()方法去操作实际的数据。
2024-08-29 21:55:51
853
原创 操作文件流时,异步流程删除文件成功问题
1、依然是未想到使用linux命令去查看,个人的排查到使用了缓存,仅根据NativeBuffer还不能确定是将缓存存在哪一块空间了;通过df -h可以得出在磁盘空间上;通过得出文件虽然被删除了,但其实是空间还未释放。2、在linux设备上使用测试下载文件时,删除文件,结果删除成功了,但是本地windows上测试时,delete方法会返回false,删除失败,可能是系统不同导致的?
2024-08-08 14:08:31
464
原创 并发下载导致设备重启排查记录
1、对linux的命令不熟悉,当从逻辑上确定了项目不会持续吃内存后,没有想到去查看到底是什么服务吃内存。当找到是nginx吃内存后,也没有想到去使用工具定位内存的具体情况(后来有了解到hcache工具,但是并没有进行安装)2、对nginx的配置不熟悉。,发现现实结果与理论中的结果不一致,内存还是持续上升。由于之前没有测试过这几个参数的使用,并不确定是配置配错了还是没生效。3、对报错没有认真分析,java有关数据库的报错,没有及时分析报错内容,有一定程度上误导了解决问题的方向。
2024-08-02 16:03:34
926
原创 ScheduledThreadPoolExecutor代码阅读
定时任务中的定时是通过take队列中任务时,根据delay进行awaitNanos(delay)控制的,通过leader控制每次只能有一个线程进行awaitNanos,其他线程执行wait,当awaitNanos结束后,会执行signal,释放wait进程。队列使用的是内部类类型的一个队列,内部通过数组存任务,size存任务数量,数组内部使用推排序来实现下一次take时,取的是时间最近的任务。
2024-07-12 16:42:28
927
原创 ThreadPoolExecutor代码阅读理解
假设在运行状态下,步骤1,由于workercount >= corePoolSize导致addworker失败,进入步骤2, 如果加入队列成功,则正常状态下,下面的if 与 elif 均不满足条件,所以此处就是仅将任务加入阻塞队列,假设步骤2中加入队列失败,即有限阻塞队列满了,则会执行步骤3,此处就再次尝试addWorker,此处是否添加成功的关键是workercount与maximumPoolSize比较,若小于maximumPoolSize,则会添加一个worker,反之返回false。
2024-07-06 10:30:47
1027
原创 ReentrantLock与ReentrantReadWriteLock代码阅读
根据上述介绍,如果是公平锁,则判断是否有线程已经在等待了,若有返回true,若是非公平锁,则判断等待的队列中是否在以独占的形式等待,若是则返回true。从代码中可以看出,获取独占锁时,会判断当前线程是否是占有独占锁的那个线程,如果是,则更新 state (AQS中的属性),所以此操作保证了锁的可重入。从此看出,如果已经有线程获取了独占锁,目前又有线程来获取共享锁,如果这两个线程不一致,则会获取锁失败,即同一线程,可以先获取独占锁,可重入共享锁。所以,如果由线程正在独占模式下等待,则不支持你直接获取共享锁。
2024-06-27 16:27:11
983
原创 AQS代码理解
上述是最简单的流程,假设第二个if条件为true,for循环中处理的事情为:从tail往前找,直至到node,将这个过程中找到的最后一个满足等待状态
2024-06-25 17:02:24
987
1
转载 logback的Appenders
logback 将写入日志事件的任务委托给一个名为 appender 的组件。Appender 必须实现接口。
2023-08-25 11:38:28
463
1
原创 Druid连接池的connectionErrorRetryAttempts、 timeBetweenConnectErrorMillis、breakAfterAcquireFailure参数使用
Druid连接池的connectionErrorRetryAttempts、 timeBetweenConnectErrorMillis、breakAfterAcquireFailure参数使用
2023-05-08 19:48:55
2583
原创 shutdown()、shutdownNow()的含义与区别
shutdownNow,不能保证当前正在运行的任务被停止;shutdown会将当前运行的任务与等待队列中的任务均执行结束,而shutdownNow会抛弃等待队列中的任务;两者均不接收新的任务。
2023-04-13 15:48:17
330
原创 springSecurity注入springSecurityFilterChain的过程
被注入的springSecurityFilterChain对象由webSecurity.build();生成。 build时,先读取自定义的配置,进行init,configure,performBuild,在performBuild时,会加载Springboot封装好的配置,然后遍历,分别执行init,configure,performBuild方法,最后将加载的filters生成chain,然后再进行代理。最后注入。
2023-03-15 18:01:18
648
原创 springboot配置文件
application.yml配置文件写什么?自动配置注解读取的配置存在spring.factories文件中配置文件与上述的spring.factories文件有什么联系?在该文件中的所有文件都有@Configuration这个注解,表明是一个配置类例如HttpEncodingAutoConfiguration.java这个类,有注解@Configuration@EnableConfigurationProperties(HttpProperties.class)//该类见下@Conditi
2021-10-11 16:00:00
146
原创 SpringSecurity
文章目录1、SpringSecurity简介1.1 安全框架概述1.2、常用安全框架1、SpringSecurity简介1.1 安全框架概述什么是安全框架?解决系统安全问题的框架。如果没有安全框架,我们需要手动处理每个资源的访问控制,非常麻烦。使用安全框架,我们可以通过配置的方式实现对资源的访问控制。1.2、常用安全框架SpringSecurity:Spring家族的一员。是一个能够为基于Spring的企业系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文配
2021-10-09 22:24:51
15958
原创 连通网络的最少操作次数
已知有n个节点,和m条连接两个节点的线条。需要移动几条线使得所有的节点通过线条可以达到其他的节点?若给出的图是一个极大连通图,则不需要进行任何操作。反之,表示当前的图存在不止一个连通子图。如果有多余的线条,则可以将几个子图进行连接。需要移动的线条数则为连通子图 的个数-1。什么时候有多余的线条?对于一个带有n个节点的图,一个最简单的极大连通子图需要n-1条线即可完成,所以给的已知线条数<n-1,则不可能成为一个极大连通图。所以可以转化为求连通子图的个数。有两种方法:图的深度优先搜索遍
2021-01-24 23:08:55
4640
原创 HashCode
HashCode1.最底层的实现方法为:在Object .java中public native int hashCode();2.在HashMap.java中的hashcode方法:public final int hashCode() { return Objects.hashCode(key) ^ Objects.hashCode(value);}3.在Objects中的hashcode方法:public static int hashCode(Object o) {
2020-12-16 18:00:32
7969
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人