利用线程池创建多线程

public ThreadPoolExecutor getTableThreadPoolExecutor(int coreSize,int maxSize) {/*表格线程存活时间*/final int KEEP_ALIVE = 3;ThreadPoolExecutor executor = new ThreadPoolExecutor(coreSize,maxSize,KEEP_ALIVE,TimeUnit.HOURS,new LinkedBlockingDeque<Runnable>(20),new JobThreadFactory("表格统计"),new ThreadPoolExecutor.AbortPolicy());return executor;}

启动项目之后出现了

2023-04-04 16:41:56 [统计] INFO  d.s.d.thread.JobHandleThread - 任务:DATA-报错
2023-04-04 16:41:56 [表格统计--1] ERROR d.s.d.thread.JobHandleThread - Taskhandler.tableHandler.DATA$2@4c3917a0 rejected from java.util.concurrent.ThreadPoolExecutor@1e81bebe[Running, pool size = 2, active threads = 2, queued tasks = 20, completed tasks = 0]

启动时会出现这个提示之后,程序执行到中断

2023-04-04 16:42:31 [xxl-job, executor ExecutorRegistryThread] INFO  c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='statistics', registryValue='192.168.0.1:9996'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://192.168.0.1:8180/xxl-job-admin/api/registry, content=null]

然后就不执行了,,郁闷了2天,各种捕捉异常,多次执行,程序始终不能正常结束。不管用,又重新看了下线程池创建的工作原理

复习一遍

1、 当线程池小于corePoolSize时,新任务将创建一个新的线程,即使此时线程池中存在空闲线程。

2、 当线程池达到corePoolSize时,新提交的任务将被放入workQueue中,等待线程池任务调度执行。

3、 当workQueue已满,且maximumPoolSize>corePoolSize时,新任务会创建新线程执行任务。

4、 当提交任务数超过maximumPoolSize时,新提交任务由RejectedExecutionHandler处理。

5、 当线程池中超过corePoolSize时,空闲时间达到keepAliveTime时,关闭空闲线程。

另外,当设置了allowCoreThreadTimeOut(true)时,线程池中corePoolSize线程空闲时间达到keepAliveTime也将关闭。

默认提供了四种拒绝策略

1、AbortPolicy策略:该策略会直接抛出异常,阻止系统正常工作;

2、CallerRunsPolicy策略:如果线程池的线程数量达到上限,该策略会把任务队列中的任务放在调用者线程当中运行;

3、DiscardOledestPolicy策略:该策略会丢弃任务队列中最老的一个任务,也就是当前任务队列中最先被添加进去的,马上要被执行的那个任务,并尝试再次提交。

4、DiscardPolicy策略:该策略会默默丢弃无法处理的任务,不予任何处理。当然使用此策略,业务场景中需允许任务的丢失;

嗯,AbortPolicy策略会阻止系统正常执行完成,很明显了,核心线程数、最大线程数、阻塞队列3个参数设置小了,我的数据量是80,开2个或者5个线程的话,队列会塞70个进去,只设20个队列会异常,问题就出在阻塞队列小了,然后将

new LinkedBlockingDeque<Runnable>(100) 设置成100,程序可以顺利执行完成

记一次多线程报错问题相关推荐

  1. Python多线程报错之RuntimeError

    写多线程脚本,运行的时候报错 File "/usr/local/lib/python2.6/threading.py", line 465, in start     raise ...

  2. 记一次mysql报错:The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exists

    最近将之前用的 mysql5.5 升级到了 mysql8.0,第一天还能正常使用,几天没用后,登录发现报错:The user specified as a definer ('mysql.infosc ...

  3. 记一次事务报错问题 Transaction synchronization is not active

    问题场景 在一次请求的返回结果中出现了这个错误信息"Transaction synchronization is not active",意思是"事务同步器没有激活&qu ...

  4. 记一次坑爹报错之旅 -bash: /etc/profile: line 11: syntax error near unexpected token

    昨晚修改了环境变量后,进行重置服务时 source /etc/profile 报错 [root@localhost etc]# source /etc/profile -bash: /etc/prof ...

  5. 记一次 打包报错:Keystore was tampered with, or password was incorrect

    场景 今天在项目打包时遇到一个报错,如下图,批量打包采用的是多渠道快速打包脚本,由于打包过程太快,报错稍纵即逝.. 不得不使用iPhone手机自带的拍摄慢动作,然后截图.将主要信息拿到百度上搜了一下, ...

  6. 记Vivado使用,报错记录本

    /*************************************************************************************************** ...

  7. python 多线程报错An attempt has been made to start a new process before the current process has finished

    报错信息: An attempt has been made to start a new process before the current process has finished its 原因 ...

  8. 记一次mysql8报错的处理:The table /tmp/#sql~~~ is full

    SELECT ip,port,count(*) FROM devops.pvs_sfpshow group by ip,port; 一句简单的分组查询语句,报错了 1114 Error, The ta ...

  9. 记一次AKS报错-Harbor

    报错介绍:前后端的同学提交代码后,运用Jenkins进行构建后,发现无法部署最新代码,一直是之前的旧代码: 错误排查,首先在Consul上查看所有服务的是否都注册,发现所有的服务都已经注册,并没有异常 ...

最新文章

  1. 简单免费工具实现手机端信息统计
  2. mysql查询根据季度查询_Mysql 按年、季度、月查询统计
  3. 【Java Web前端开发】深入浅出xml
  4. 一个Java多线程的问题,颠覆了我多年的认知!
  5. 可持久化数据结构加扫描线_结构化光扫描
  6. Shell——输入/输出重定向
  7. 好爸爸陪宝宝必做的50件小事儿
  8. srand函数_SUDA-CS考研复试常用函数
  9. HCIE Security 二层攻击防范 备考笔记(幕布)
  10. dell笔记本电脑驱动_驱动到底是什么?别再用精灵管家无脑装驱动了
  11. 用视频录制软件Captura学习网课
  12. java io closed_java.io.IOException: Stream closed 异常的原因和处理
  13. 从0开发豆果美食小程序——tag组件
  14. liinux下安装jdk
  15. 在数据集Euroc v dataset下跑双目ORB-SLAM2
  16. Windows漏洞修复服务器,三种Windows服务器SSL/TLS的安全漏洞以及其补救方法
  17. 如何高效学习(斯科特·扬 )(含思维导图)
  18. 图解:HTTP 范围请求,助力断点续传,多线程下载的核心原理 | 实用HTTP
  19. 【2022 CSDN OpenHarmony应用学习挑战赛】
  20. 每日时报,以前端技术体系为主要分享课题

热门文章

  1. 搜索(2) --丁香园
  2. 转账到支付宝账户产品介绍
  3. python生成CAPTCHA验证码图像实战、生成中文(汉子)CAPTCHA验证码图像
  4. 关于SSD 4K对齐
  5. et200s模块接线图讲解_【图】ET200S热电偶模块的用法举例
  6. (已解决)WPS如何插入公式和数学表达式 // WPS如何插入网上文章的表达式
  7. 海思平台gpio模拟spi驱动总结
  8. 前端代码规范(阿里) --- Javascript
  9. 毕设-基于SSM酒品进销存
  10. 百度财报:AI要当扛把子