主题:多线程应用实践

admin 2023年05月17日 570

核心线程: cpu个数*8

最大线程: 核心线程*4

排队数: 核心线程*100

空闲alive时间: 60s

config方式配置线程池

参考百度

线程池.submit(闭包方法->{

return 执行结果

})

也可以使用completefuture的方式使用线程池

新建线程池(方式2)

ExecutorService EXECUTOR = Executors.newFixedThreadPool(cpu个数的4倍)

采集服务类 要通过getBean的方式动态获取,这样才能设置每个实例的属性

Future<bean类>callResult = EXECUTOR.submmit(callable的采集服务实现类)

if(null !=callResult)

callResult.get() 开始执行异步线程

@Scope(prototype) 声明多实例对象

采集服务类

注意: 这里采集服务类一定要声明多实例对象,否则线程池的调度只在一个实例上,就无法采集多个版本的数据,变成重复采集