<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "/spring-beans.dtd">
<beans>
<!-- 异步线程池 -->
<bean id="threadPool" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<!-- 核心线程数 -->
<property name="corePoolSize" value="10" />
<!-- 最大线程数 -->
<property name="maxPoolSize" value="50" />
<!-- 队列最大长度 >=mainExecutor.maxSize -->
<property name="queueCapacity" value="1000" />
<!-- 线程池维护线程所允许的空闲时间 -->
<property name="keepAliveSeconds" value="300" />
<!-- 线程池对拒绝任务(无线程可用)的处理策略 -->
<property name="rejectedExecutionHandler">
<bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />
</property>
</bean>
<bean id="mainExecutor" class="supben.MainExecutor">
<property name="threadPool" ref="threadPool" />
</bean>
<bean id="springScheduleExecutorTask" class="org.springframework.scheduling.concurrent.ScheduledExecutorTask">
<property name="runnable" ref="mainExecutor" />
<!-- 容器加载10秒后开始执行 -->
<property name="delay" value="10000" />
<!-- 每次任务间隔 5秒-->
<property name="period" value="5000" />
</bean>
<bean id="springScheduledExecutorFactoryBean" class="org.springframework.scheduling.concurrent.ScheduledExecutorFactoryBean">
<property name="scheduledExecutorTasks">
<list>
<ref bean="springScheduleExecutorTask" />
</list>
</property>
</bean>
</beans>
public class MainExecutor extends TimerTask {
//注入ThreadPoolTaskExecutor 到主线程中
private ThreadPoolTaskExecutor threadPool;
public void setThreadPool(ThreadPoolTaskExecutor threadPool){
this.threadPool = threadPool;
}
//在主线程中执行任务线程.....
@Override
public void run() {
threadPool.execute(new Task1());
}
//任务线程1... 同理可以有2,有3..
public class Task1 implements Runnable {
public void run() {
Time time = new Time(System.currentTimeMillis());
System.out.println("这是第一个工作,执行于:"+time);
}
}
分享到:
相关推荐
本示例"maven管理的Spring多线程任务demo"着重展示了如何在Spring框架中利用Maven进行项目构建,并实现多线程任务处理。在SSM(Spring、SpringMVC、MyBatis)框架背景下,如果你已经有所了解,那么这个例子将帮助你...
在【压缩包子文件的文件名称列表】"SpringThreadDemo-master"中,我们可以预期这个项目包含了一个完整的Spring多线程示例。通常,这样的项目会包含以下部分: 1. `pom.xml`:Maven配置文件,包含了Spring框架和相关...
通过定义切面和通知,我们可以实现对多线程任务的统一管理和监控。 6. **线程安全**: 在多线程环境下,需要特别注意线程安全问题。Spring提供了一些工具类如`ConcurrentHashMap`、`AtomicInteger`等,它们具有...
在Spring 3.0 MVC框架中,定时器和多线程任务是两个关键概念,用于构建高效、自动化的Web应用程序。下面将详细讲解这两个概念及其在实际应用中的使用。 一、Spring 3.0 MVC定时器 在Spring 3.0中,我们可以使用...
本文将深入探讨在Spring中如何利用多线程和动态任务来实现异步处理,并分享一些实践心得。 首先,我们要理解Spring的异步处理机制。Spring通过`@Async`注解实现了方法级别的异步执行。当一个带有`@Async`的方法被...
当我们谈到在Spring中实现多线程,实际上是在讨论如何在Spring环境中创建、管理和协调并发执行的任务。这涉及到Java的并发API以及Spring对这些API的包装和扩展。 首先,让我们了解Java中的多线程基础。在Java中,...
1. SpringBoot 自定义线程池以及多线程间的异步调用(@Async、@EnableAsync) 2.Java多线程之定时任务 以及 SpringBoot多线程实现定时任务 3.@EnableScheduling 与 @Scheduled
以下将详细介绍Java Spring中实现多线程的关键知识点,并结合"Java Spring多线程demo代码"的实践场景进行解析。 首先,Spring提供了`ThreadPoolTaskExecutor`,这是一个基于Java的`ThreadPoolExecutor`实现的任务...
Spring Boot 中的多线程处理任务 在 Spring Boot 项目中,使用多线程处理任务是非常重要的,特别是在监控项目中,每个被监控的业务都需要单独运行在一个线程中,具有自己的配置参数。那么,如何在 Spring Boot 项目...
"Spring Boot 中多线程处理任务方法详解" 在 Spring Boot 项目中,使用多线程处理任务是一种常见的需求,尤其是在需要并发处理多个任务的情况下。那么,如何使用多线程处理任务方法呢?下面我们将详细介绍 Spring ...
在Java中,我们可以使用`ExecutorService`来管理线程池并执行多线程任务。首先,需要在Spring配置类中声明一个`ThreadPoolTaskExecutor`实例: ```java import org.springframework.context.annotation.Bean; ...
总结起来,这个项目展示了如何利用Spring Boot和Druid实现多数据源切换,以及如何在Spring Boot中配置和使用多线程来提升数据库操作的并发性能。对于初学者,这是一个很好的学习资源,可以深入理解Spring Boot的自动...
在Android开发中,多线程技术常常用于提升应用程序的性能,特别是在处理耗时操作,如文件下载时。这个"多线程分别下载文件"的Demo是针对在ListView或GridView控件中实现的一项功能,允许用户选择多个文件进行并行...
而多线程在现代编程中扮演着关键角色,特别是在处理并发任务、提高系统效率时。 在"spring4+junit4.8 +多线程TheadTool"的场景下,我们可以深入探讨以下几个知识点: 1. **Spring4框架**:Spring4在Spring3的基础...
【Spring多线程任务】 Spring框架提供了一种优雅的方式来处理多线程任务,这主要得益于其内置的任务执行器(TaskExecutor)接口。TaskExecutor接口允许开发者定义如何执行异步任务,而Spring通过实现该接口提供了...
标题 "HttpClient + Spring 实现多线程" 涉及到的是如何在Spring框架中使用Apache HttpClient库来创建一个支持多线程的HTTP客户端服务。Apache HttpClient是一个强大的HTTP客户端API,它提供了丰富的功能来处理HTTP...
在这两种方式中,Spring框架提供了自己的定时任务工具Spring Task,以及与专业定时任务框架Quartz集成的能力。 首先,对于Java自带的定时任务实现,我们可以使用java.util.Timer和java.util.TimerTask类。Timer类...
- **任务隔离**:为了防止任务间的相互影响,应该为每个任务分配独立的线程。 - **异常处理**:确保任务有适当的异常处理,避免因单个任务失败而影响整个调度系统。 - **监控和调试**:建立任务执行的监控系统,...
在Spring Boot应用中,多线程的使用是一个关键特性,特别是在处理高并发或者需要执行耗时操作时。本文将深入探讨Spring Boot如何实现多线程,并结合提供的`spring-boot-multithreading.zip`压缩包中的示例进行讲解。...
在Spring框架中,多线程的应用主要体现在并发处理和异步任务上。Spring的`ThreadPoolTaskExecutor`和`AsyncConfigurer`接口可以帮助我们配置和管理线程池,实现任务的异步执行。通过在方法上添加`@Async`注解,我们...