首页 > 其他分享 >开启多线程

开启多线程

时间:2023-06-19 18:00:53浏览次数:501  
标签:600 int 开启 private Value executor 多线程 pool

在service层直接在方法上注解开启

@Async("getyourPool")

准备配置
@Configuration
@EnableAsync
@Slf4j
public class yourConfig {
@Value("${thread.pool.keepAliveSeconds:300}")
private int keepAliveSeconds;
@Value("${thread.pool.maxPoolSize:12}")
private int ingestionMaxPoolSize;
@Value("${thread.pool.corePoolSize:4}")
private int ingestionCorePoolSize;
@Value("${thread.pool.queueCapacity:600}")
private int ingestQueueCapacity;

@Bean
public ThreadPoolTaskExecutor getyourPool() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(ingestionCorePoolSize);
executor.setQueueCapacity(ingestQueueCapacity);
executor.setMaxPoolSize(ingestionMaxPoolSize);
executor.setKeepAliveSeconds(keepAliveSeconds);
executor.setThreadNamePrefix("yourThreadPool-");
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setRejectedExecutionHandler((Runnable r, ThreadPoolExecutor exe) -> {
log.warn("yourThreadPool-full!");
});
executor.initialize();
return executor;
}
}
setQueueCapacity
如果设置了600,如果你的任务很多 超过600个 
例如1000个下载任务,如果你设置了600,那么你的任务开启到600个,剩余的400个任务会默认直接丢失,不会返回,
要设置
executor.setRejectedExecutionHandler 设置为不丢弃就行,不然默认直接丢弃 

 



 

标签:600,int,开启,private,Value,executor,多线程,pool
From: https://www.cnblogs.com/ivyJ/p/17491803.html

相关文章

  • C++11:多线程
    传统的C++(C++11之前)中并没有引入线程这个概念C++11引入了头文件<thread>,提供了管理线程保护共享数据线程间同步操作原子操作等  <thread>join()detach()get_id()yield()sleep_for()sleep_until() #include<thread>intmain(){ std::threadt......
  • POSTGRESQL 事务控制(二) 事务开启 (写着费力,看着费劲系列)
    今天接着上回书,事务如果在处理中没有子事务,则实现和控制是十分容易的,但如果有子事务的情况下,子事务通过transactionState结构体来实现,(上次已经提到了),每一个transactionState都指向父事务的结构体的指针.在继续往下说之前,我们的提到clog, 这是理解后面要提到的一些事情的......
  • Windows 10 开启子系统Ubuntu
    卸载原有的wsl分发子系统#查看已安装的wsl子系统wsl--list#依次删除wsl子系统wsl--unregister<子系统名称>结果安装子系统Ubuntu20.04在MicrosoftStore中搜索Ubuntu,选择对应版本安装。安装完成后,不要直接点开安装完成后,不要直接点击打开直接安装默认安装在C......
  • 多线程面试题
    1.多线程的主要参数有哪些,有什么用?1)corePoolSize(核心线程数)指的是长期存活的线程数。比如地主家的长工,无论这一年活多还是活少,都不会被辞退。2)maximumPoolSize(最大线程数)指的是线程池允许创建的最大线程数,其中包含核心线程数(最大线程数>=核心线程数)。比如地主家临时活太多,长......
  • 用户态多线程实现的基本原理
    本文参考了用户态非抢占式线程库实现一文以及GNUPth。前者是一种用户态线程库的简单实现,属于一个很好的demo,后者就是大家熟知的Pthread的用户态实现,比较完善。 Keywords:User-SpaceMultiThreading,Pth 所谓多线程,简单讲就是能够让几个不同的代码片段轮流执行。内核实现多线......
  • std::thread 六:多线程&单例类
     为了避免单例类在多线程中重复的创建,下面提供了两种解决方法:1.互斥锁+双重检查2.std::call_once() 方法一:互斥锁+双重检查#include<iostream>#include<thread>#include<mutex>#include<list>usingnamespacestd;std::mutexmy_mutex;//创建一个单......
  • Java多线程-Lesson01-线程的创建
    线程创建的三种方式继承Thread类步骤:继承Thread类重写run()方法调用start()开启线程重写run()方法:@Overridepublicvoidrun(){for(inti=0;i<200;i++){System.out.println("run():"+i);}} run()方法里面就是我们多......
  • Windows Server 2022 多用户同时登录 开启 批处理
    使用批处理在WindowsServer2022上配置远程桌面服务和远程桌面会话主机的连接,您可以按照以下步骤进行操作:启用远程连接:regadd"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer"/vfDenyTSConnections/tREG_DWORD/d0/f配置远程桌面服务:dism/......
  • 多线程开启gprof性能测试的简易方法
    用到gprof时才知道,原来gprof只能对主线程统计耗时。manual上也没写线程相关的问题啊?不过有现成的解决方案:http://sam.zoy.org/writings/programming/gprof.html该方案封装了pthread_create(),让线程初始化执行一个setitimer(ITIMER_PROF,...)。简易的方法是直接在代码中写个setit......
  • 2023-06-17 tp6如何开启debug调试
    我安装的tp6没有.env文件,官网的文档是说把tp6在根目录生成的.exmaple.env文件改名为.env就可以了,如果没有该文件就直接创建一个,然后在里面添加代码:APP_DEBUG=true;如果想关闭调试则设置为false即可。注意:官方说明该调试只可用于本地测试,部署到生产环境时会失效。tp6官方文档:ht......