随笔分类 -  java

摘要:你可能经常在面试中被问到这两个问题,如果想要很好地回答它们首先你需要了解,我们调整线程池中的线程数量的最主要的目的是为了充分并合理地使用 CPU 和内存等资源,从而最大限度地提高程序的性能。在实际工作中,我们需要根据任务类型的不同选择对应的策略。 CPU 密集型任务 首先,我们来看 CPU 密集型任 阅读全文
posted @ 2025-03-19 22:34 钱塘江畔 阅读(50) 评论(0) 推荐(0)
摘要:kedBlockingQueue 对于 FixedThreadPool 和 SingleThreadExector 而言,它们使用的阻塞队列是容量为 Integer.MAX_VALUE 的 LinkedBlockingQueue,可以认为是无界队列。由于 FixedThreadPool 线程池的线程 阅读全文
posted @ 2025-03-19 22:33 钱塘江畔 阅读(15) 评论(0) 推荐(0)
摘要:除了ForkJoinPool(),都使用了Executors.defaultThreadFactory(),本质还是new Thread()来创建线程。 都是juc.Executors中,new ThreadPoolExecutor() ; int corePoolSize = 5; int max 阅读全文
posted @ 2025-03-19 22:33 钱塘江畔 阅读(13) 评论(0) 推荐(0)
摘要:AbortPolicy 当线程池饱和时,直接抛出异常 DiscardPolicy 当线程池饱和时,新任务直接被丢弃掉,没有任何通知 DiscardOldestPolicy 当线程池饱和时,丢弃队列中的头结点,通常是存活时间最长的任务 CallerRunsPolicy 当线程池饱和时,谁提交任务就由谁 阅读全文
posted @ 2025-03-19 22:32 钱塘江畔 阅读(15) 评论(0) 推荐(0)
摘要:** 参数名 ** ** 含义 ** corePoolSize 核心线程数,常驻线程数量 maxPoolSize 最大线程数 keepAliveTime+时间单位 空闲线程的存活时间 ThreadFactory 线程工厂、用来创建新线程 workQueue 用于存放任务的队列 Handler 处理被 阅读全文
posted @ 2025-03-19 22:32 钱塘江畔 阅读(35) 评论(0) 推荐(0)
摘要:每个任务创建一个线程有什么问题? 线程的创建和销毁对系统开销(时间、内存)太大,任务越多,开销越大 过多的线程导致更多的上下文切换,影响系统的稳定性。 线程池如何解决上述问题? 线程池创建一些线程,一直处于工作状态 根据需要创建线程,限制线程的数量 使用线程池的好处 第一点,线程池可以解决线程生命周 阅读全文
posted @ 2025-03-19 22:31 钱塘江畔 阅读(17) 评论(0) 推荐(0)
摘要:实现线程只有一种方法,就是new Thread() 实现 Runnable 接口比继承 Thread 类实现线程好 首先,我们从代码的架构考虑,实际上,Runnable 里只有一个 run() 方法,它定义了需要执行的内容,在这种情况下,实现了 Runnable 与 Thread 类的解耦,Thre 阅读全文
posted @ 2025-03-19 22:30 钱塘江畔 阅读(26) 评论(0) 推荐(0)
摘要:Object getClass() 获取getClass()返回的Class对象,看看都有哪些内容 Test test = new Test(); Class<? extends Test> aClass = test.getClass(); Method[] methods = aClass.ge 阅读全文
posted @ 2025-03-19 22:21 钱塘江畔 阅读(9) 评论(0) 推荐(0)
摘要:摘自https://www.cnblogs.com/dolphin0520/p/3920373.html 一、内存模型相关的一些知识 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的 阅读全文
posted @ 2025-03-19 22:19 钱塘江畔 阅读(16) 评论(0) 推荐(0)
摘要:<!--mysql驱动包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> System.out 阅读全文
posted @ 2025-03-19 22:09 钱塘江畔 阅读(10) 评论(0) 推荐(0)
摘要:scala对象 object ScalaDemo { def add(a :Int, b :Int) :Int = a + b } java代码 public class Test { public static void main(String[] args) { int add = ScalaD 阅读全文
posted @ 2025-03-19 21:55 钱塘江畔 阅读(16) 评论(0) 推荐(0)
摘要:代理模式 为其他对象提供一个代理以控制对某个对象的访问。代理类主要负责为委托了(真实对象)预处理消息、过滤消息、传递消息给委托类,代理类不现实具体服务,而是利用委托类来完成服务,并将执行结果封装处理。 其实就是代理类为被代理类预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行消息的后置 阅读全文
posted @ 2025-03-19 21:54 钱塘江畔 阅读(9) 评论(0) 推荐(0)
摘要:java调用python的几种用法(看这篇就够了) 阅读全文
posted @ 2025-03-19 21:49 钱塘江畔 阅读(10) 评论(0) 推荐(0)
摘要:Java8 Stream流:集合的筛选、归约、分组、聚合 阅读全文
posted @ 2024-05-30 21:10 钱塘江畔 阅读(11) 评论(0) 推荐(0)
摘要:1.背景 服务器CPU使用率告警,紧急排查。 2.排查思路 2.1 top查看各进程的CPU占用率 top 查到进程的pid 2.2 查看该进程的所有线程 top -Hp <pid> 发现大量的GC task thread# 的cpu使用超过90%,定位到时频繁GC导致,可能是内存不足引起 # js 阅读全文
posted @ 2024-05-20 17:29 钱塘江畔 阅读(1049) 评论(0) 推荐(0)
摘要:使用Apifox+idea插件+Javadoc彻底替代Java项目中的Swagger 实现代码零侵入(这里以SpringBoot多模块项目为例 阅读全文
posted @ 2024-05-16 14:28 钱塘江畔 阅读(23) 评论(0) 推荐(0)
摘要:[https://blog.csdn.net/u011270461/article/details/23748081]("Error occurred during initialization of VM java.lang.OutOfMemoryError"解决方案) 阅读全文
posted @ 2024-05-10 14:51 钱塘江畔 阅读(44) 评论(0) 推荐(0)
摘要:spring boot配置文件格式 ${}和@@ 阅读全文
posted @ 2024-03-06 21:09 钱塘江畔 阅读(22) 评论(0) 推荐(0)
摘要:[IDEA]使用idea比较两个jar包的差异 jar包如何对比差异 Beyond Compare文件对比 阅读全文
posted @ 2024-01-31 20:31 钱塘江畔 阅读(489) 评论(0) 推荐(0)
摘要:[jd-gui修改Jar的class文件并重新打包小技巧](https://www.cnblogs.com/liuyangjava/p/16589086.html) 阅读全文
posted @ 2023-08-02 21:51 钱塘江畔 阅读(13) 评论(0) 推荐(0)