自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 线上cpu飙高,死锁查询

线上 cpu 飚高如何排查命令行:第一步,top 先看看是哪个进程 找到 cpu占用最高的,如果是 java 然后用,第二步:jstat 进程 id 得到当前进程下,所有运行的线程,然后找到占用最高的线程,jstack > stack.log第三步:通过进程 id 得到它的子线程 idtop -p -H第三步:然后把线程 id 转成16进制字符串,printf “%x” <thread_id>第四步:stack.log 查看线程 id (16 进制字符)less

2022-05-13 16:11:34 124

原创 one hot java版

one hot java

2022-04-01 11:48:48 473

原创 遍历两个日期之间所有日期 工具类(借鉴)

public static List<String> lastDays(Integer days, boolean tansFormat) { LocalDate localDate = LocalDate.now(); LocalDate afterDate = localDate.minusDays((long)days); List<String> localDateTimes = new ArrayList(days);

2022-01-06 16:41:42 517

原创 线程死锁--避免

死锁一般是两个或两个以上的线程共同争抢一个资源而造成互相等待的一种情况,没有外力,破坏不了互斥条件:一个资源每次只能被一个进程使用。请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源 保持不放。不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。最简单的方法就是阻止循环等待条件,将系统中所有的资源设置标志位、排序,规定所有的进程申请资源必须以一定的顺序(升序或降序)做操作来避免死锁。1.申请资源按照顺序加锁顺序

2021-10-13 23:51:51 145

原创 java8

Java 8 函数式接口函数式接口(FunctionalInterface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为lambda表达式。函数式接口可以现有的函数友好地支持 lambda。JDK 1.8之前已有的函数式接口:· java.lang.Runnable· java.util.concurrent.Callable· java.security.PrivilegedAction· java.util.Comparator·

2021-10-13 00:05:27 60

原创 线程池 --结束线程

当run() 或者 call() 方法执行完的时候线程会自动结束,如果要手动结束一个线程,可以用volatile 布尔变量来退出run()方法的循环或者是取消任务来中断线程1.stop的方式类似于当你在上厕所,有个人直接把你拽起来,后果很严重!!!2.suspend()和resume()相当于领导找你有事,可是你手上还有工作没有干完,你去舔领导,但是自己的事又只能自己干,相当于任务暂停,换言之也就是,比如b线程有个a的锁,b不完成直接休眠了,a就钥匙,等死中。。。3.java提供了一种interrup

2021-10-12 23:08:40 973

原创 线程池cpu设置

聊具体场景CPU 密集型程序I/O 密集型程序所以,如果是多核CPU 处理 CPU 密集型程序,我们完全可以最大化的利用 CPU 核心数,应用并发编程来提高效率线程等待时间所占比例越高,需要越多线程;线程CPU时间所占比例越高,需要越少线程。对于 CPU 密集型来说,理论上 线程数量 = CPU 核数(逻辑)就可以了,但是实际上,数量一般会设置为 CPU 核数(逻辑)+ 1, 为什么呢?计算(CPU)密集型的线程恰好在某时因为发生一个页错误或者因其他原因而暂停,刚好有一个“额

2021-10-12 22:34:59 462

原创 jvm第一期

jvm笔记第一期heap里有一个eden两个surviur和一个终身,回收第一次把剩下的copy到s1中,第二次回收copy到s2中,然后再重复,最后放到终身去判断是不是垃圾有两种1.引用计数2.根搜索回收方法三种1.mark-sweep先标记再清除,容易碎片化,不能分配完整的空间,实在找不到分配空间,来一次大的碎片整理2.copying 内存半分,将上半部的copy到下半部顺便压缩,如此反复,但是会产生内存浪费mark-compact 回收时顺带压缩,效率比copy低java对象分配先

2020-07-10 09:52:09 68

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除