问题及背景
首先,该问题出现在一场面试中,详细描述如下:有一个10G的IP日志,每行为一条IP地址,JVM堆内存为1G,现在要求统计出该日志中出现次数最多的100个IP地址。面试时想出了思路,并且也给出了相应的代码,但文件读取的方法用的不多,代码写的不完善,这里给出详细的思路和代码。
首先,该问题出现在一场面试中,详细描述如下:有一个10G的IP日志,每行为一条IP地址,JVM堆内存为1G,现在要求统计出该日志中出现次数最多的100个IP地址。面试时想出了思路,并且也给出了相应的代码,但文件读取的方法用的不多,代码写的不完善,这里给出详细的思路和代码。
我们知道,newSingleThreadScheduledExecutor和newScheduledThreadPool()都是Executors下创建线程池的方法。
newSingleThreadScheduledExecutor()方法用于创建一个单线程的线程池,而如果对newScheduledThreadPool()设置值为1的话,也可以创建一个核心线程数为1的调度线程池。
那么他们的区别在哪?
新建了一个Spring Boot项目,采用的版本号是2.7.9
结果pom包中有标黄:spring-boot-starter-thymeleaf
作为一个强迫症,自然要解决它。
警告内容为:Provides transitive vulnerable dependency maven:org.yaml:snakeyaml:1.30