文档章节

quartz 和 spring的 线程池 ThreadPoolTaskExecutor 使用

之渊
 之渊
发布于 2017/02/23 15:04
字数 531
阅读 116
收藏 0
点赞 0
评论 0

在 一般的中小项目 使用 最多的是 quartz 定时任务,执行。就算没有线程池 也是可以 执行的。 但是 目前项目 中配置了 spring 线程池 。 而且 ThreadPoolTaskExecutor 线程池 也是可以 单独使用的。

如果 项目里面 一旦都配置了 线程池 和 quartz 的时候,就 晕了。有点蒙。。 上网百度了 一下 。 如果有了 线程池 ,那么 quartz 执行任务的时候, 取的线程 就是 线程 池里面定义的 线程的。 而且 线程池是有 一些地方是 很有帮助的,可以很好的 并发。而不让 任务或者是 程序 阻塞。 比如 2个 定时任务 A, B , 一个定时任务 A 执行的时间要得比较久, 但是 在 A 执行的时候 , 就要执行B 任务。 如果有线程池的话。 B就不会 阻塞 执行了。而且 对B 没有什么影响的。

如果是 单独 使用线程池的时候 , 比如 远程连接,需要 花费的时候比较长的时候 。就可以使用线程池 来 执行了。而不影响其他的 程序执行。 这就是 他们说的 并发。。

ThreadPoolTaskExecutor 配置

<bean id ="taskExecutor"  
class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" >
    <property name ="corePoolSize" value ="5" />
    <property name ="keepAliveSeconds" value ="300" />
    <property name ="maxPoolSize" value ="10" />
    <property name ="queueCapacity" value ="25" />
  </bean>

属性字段说明: 
corePoolSize: 线程池维护线程的最少数量 
keepAliveSeconds 线程池维护线程所允许的空闲时间 
maxPoolSize 线程池维护线程的最大数量 
queueCapacity 线程池所使用的缓冲队列

使用 :

ApplicationContext ctx =  new 
ClassPathXmlApplicationContext("applicationContext.xml");
ThreadPoolTaskExecutor poolTaskExecutor = (ThreadPoolTaskExecutor)
ctx.getBean("taskExecutor");

Thread udpThread = new Thread(udp);
poolTaskExecutor.execute(udpThread);
获取当前线程池活动的线程数:
int count = poolTaskExecutor.getActiveCount();
logger.debug("[x] - now threadpool active threads totalNum : " +count);

参考地址: https://my.oschina.net/52love/blog/713496 以及参考 地址: https://my.oschina.net/jgy/blog/472845
参考地址: http://blog.csdn.net/pzw_0612/article/details/48211417

如果需要有 返回值 : 地址: http://blog.csdn.net/lipc_/article/details/52786377

当然 ,也要看 情况了, 如果 远程连接 反应 比较快, 那么也是不需要 使用调用,线程池的。 具体看 情况了。

© 著作权归作者所有

共有 人打赏支持
之渊
粉丝 11
博文 494
码字总数 145190
作品 0
佛山
程序员
Spring Boot 1.X和2.X优雅重启实战

项目在重新发布的过程中,如果有的请求时间比较长,还没执行完成,此时重启的话就会导致请求中断,影响业务功能,优雅重启可以保证在停止的时候,不接收外部的新的请求,等待未完成的请求执行...

尹吉欢 ⋅ 05/20 ⋅ 0

Spring线程池开发实战及使用spring注解

本文提供了三个Spring多线程开发的例子,由浅入深,由于例子一目了然,所以并未做过多的解释。诸位一看便知。 前提条件: 1)在Eclipse创建一个Java项目,我取名为SpringThreadDemo。 2)项目...

zahschusheng ⋅ 2015/10/27 ⋅ 0

java计划任务调度框架quartz结合spring实现调度的配置实例代码分享

点击链接加入群【JavaEE(SSH+IntelliJIDE+Maven)】:http://jq.qq.com/?wv=1027&k=L2rbHv 一:quartz简介 OpenSymphony 的Quartz提供了一个比较完美的任务调度解决方案。 Quartz 是个开源的作...

executor ⋅ 2014/08/21 ⋅ 0

使用spring 的 ThreadPoolTaskExecutor 线程池,怎样移除任务呢?

使用spring 的 ThreadPoolTaskExecutor 线程池,怎样移除任务呢?

Mr.CT ⋅ 2012/02/02 ⋅ 3

关于spring线程池ThreadPoolTaskExecutor的作用

关于spring的ThreadPoolTaskExecutor: 他的一个应用场景就是调第三方的接口的时候,有可能第三方响应非常缓慢,这个时候最好的办法就是能有个最大的等待时间,不然自己的程序会一直卡死,阻...

有种下班别走 ⋅ 2015/08/14 ⋅ 0

Spring中的线程池ThreadPoolTaskExecutor

1、直接调用Spring框架中的ThreadPoolTaskExecutor ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor();//线程池所使用的缓冲队列poolTaskExecutor.setQueueCapacity......

_Roger_ ⋅ 2015/10/29 ⋅ 0

Spring线程池ThreadPoolTaskExecutor

一、 ThreadPoolTaskExecutor 配置

ciyo_yang ⋅ 2017/06/25 ⋅ 0

@EnableAsync和@Async开始异步任务支持

Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor.在开发中实现异步任务,我们可以在配置类中添加@EnableAsyn...

u014231523 ⋅ 2017/07/28 ⋅ 0

ThreadPoolTaskExecutor的配置

ThreadPoolTaskExecutor的配置在网上找了很多解释没找到,看了下ThreadPoolExecutor的配置,名字差不多,应该含义也差不多。只不过ThreadPoolTaskExecutor对 ThreadPoolExecutor做了包装。 ...

宋志刚 ⋅ 2013/11/26 ⋅ 0

Spring ThreadPoolTaskExecutor线程池

1:首先配置线程池(在spring配置文件中配置,我是在applicationContext.xml中配置的) <!-- 异步线程池 --><bean id="taskExecutor" class="org.springframework.scheduling.concurrent.Thre......

郏高阳 ⋅ 2015/07/01 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

oAuth2 升级Spring Cloud Finchley.RELEASE踩坑分享

背景 6.19号,spring团队发布了期待已久的 Spring Cloud Finchley.RELEASE 版本。 重要变化: 基于Spring Boot 2.0.X 不兼容 Spring Boot 1.5.X 期间踩过几个坑,分享出来给大伙,主要是关于...

冷冷gg ⋅ 27分钟前 ⋅ 0

OSChina 周一乱弹 —— 理发师小姐姐的魔法

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @冰冰棒- :分享田馥甄的单曲《My Love》 《My Love》- 田馥甄 手机党少年们想听歌,请使劲儿戳(这里) @Li-Wang :哎,头发又长了。。。又要...

小小编辑 ⋅ 52分钟前 ⋅ 4

Kafka1.0.X_消费者API详解2

偏移量由消费者管理 kafka Consumer Api还提供了自己存储offset的功能,将offset和data做到原子性,可以让消费具有Exactly Once 的语义,比kafka默认的At-least Once更强大 消费者从指定分区...

特拉仔 ⋅ 今天 ⋅ 0

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部