Thread Demo

实现类

 1 import org.springframework.core.task.TaskExecutor;
 2
 3 public class DemoBOImpl
 4 {
 5     // 线程池
 6     @Resource(name = "taskExecutor")
 7     private TaskExecutor taskExecutor;
 8
 9     @Override
10     public void executeThread() throws Exception {
11         // 线程池控制
12         taskExecutor.execute(new DemoThread());
13     }
14 }

线程类

 1 public class DemoThread implements Runnable
 2 {
 3     public DemoThread() {
 4     }
 5
 6     @Override
 7     public void run() {
 8         try {
 9             // do things
10         } catch (Exception e) {
11         }
12     }
13 }

Spring配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:aop="http://www.springframework.org/schema/aop"
 6     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jee="http://www.springframework.org/schema/jee"
 7     xsi:schemaLocation=" http://www.springframework.org/schema/beans
 8     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 9     http://www.springframework.org/schema/aop
10     http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
11     http://www.springframework.org/schema/tx
12     http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
13     http://www.springframework.org/schema/context
14       http://www.springframework.org/schema/context/spring-context-2.5.xsd
15     http://www.springframework.org/schema/jee
16     http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">
17
18     <context:annotation-config />
19
20     <!-- Spring线程池配置开始 -->
21     <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
22         <!-- 核心线程数,默认为1 -->
23         <property name="corePoolSize" value="1" />
24         <!-- 最大线程数,默认为Integer.MAX_VALUE -->
25         <property name="maxPoolSize" value="1" />
26            <!-- 队列最大长度,默认为Integer.MAX_VALUE -->
27            <property name="queueCapacity" value="1" />
28         <!-- 线程池维护线程所允许的空闲时间,默认为60s -->
29         <property name="keepAliveSeconds" value="60" />
30         <!-- 线程池对拒绝任务(无线程可用)的处理策略,目前只支持AbortPolicy、CallerRunsPolicy;默认为后者 -->
31         <property name="rejectedExecutionHandler">
32         <!-- AbortPolicy:直接抛出java.util.concurrent.RejectedExecutionException异常 -->
33         <!-- CallerRunsPolicy:主线程直接执行该任务,执行完之后尝试添加下一个任务到线程池中,可以有效降低向线程池内添加任务的速度 -->
34         <!-- DiscardOldestPolicy:抛弃旧的任务、暂不支持;会导致被丢弃的任务无法再次被执行 -->
35           <!-- DiscardPolicy:抛弃当前任务、暂不支持;会导致被丢弃的任务无法再次被执行 -->
36         <bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />
37         </property>
38     </bean>
39     <!-- Spring线程池配置结束 -->
40 </beans>
时间: 2024-10-11 12:04:17

Thread Demo的相关文章

boost::thread demo

#include <iostream> #include <boost/date_time/gregorian/gregorian.hpp> #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/thread.hpp> using namespace boost; using namespace boost::posix_time; void thread_func(); i

Android开发:Handler Runnable和Thread之间的区别和联系 应用--------------------看完本篇,从此一览无余!

http://blog.csdn.net/yanzi1225627/article/details/8582081 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限. 下面看例子: package org.thread.demo; class MyThread extends

Thread class vs Runnnable interface(转)

http://developer.51cto.com/art/201203/321042.htm Thread(Runnable target) Allocates a new Thread object. 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: p

初步使用Thread类创建进程

如何创建一个线程呢? 创建线程方式一:继承Thread类. 步骤:   1,定义一个类继承Thread类. 2,覆盖Thread类中的run方法. 3,直接创建Thread的子类对象创建线程. 4,调用start方法开启线程并调用线程的任务run方法执行. 可以通过Thread的getName获取线程的名称 Thread-编号(从0开始) 主线程的名字就是main. class Demo extends Thread { private String name; Demo(String name

Java中Runnable和Thread的区别

在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限. 下面看例子: 代码如下: package org.thread.demo; class MyThread extends Thread{ private String name; public MyThread(String

java线程系列---Runnable和Thread的区别

本文转载于:http://blog.csdn.net/wwww1988600/article/details/7309070 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: 1 package org.thread.demo; 2 class MyThrea

java线程系列---Runnable和Thread的区别 (转载)

转自:http://blog.csdn.net/wwww1988600/article/details/7309070 在java中可有两种方式实现多线程,一种是继承 Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的 run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限, 下面看例子: package org.thread.demo; class MyThread ext

Java知多少(58)线程Runnable接口和Thread类详解

大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 创建线程的最简单的方法就是创建一个实现Runnable 接口的类.Runnable抽象了一个执行代码单元.你可以通过实现Runnable接口的方法创建每一个对象的线程.为实现Runnable 接口,一个类仅需实现一个run()的简单方法,该方法声明如下:    public void run( )

Java 多线程之 Runnable VS Thread 以及资源共享问题

对于 Java 多线程编程中的 implements Runnable 与 extends Thread,部分同学可能会比较疑惑,它们之间究竟有啥区别和联系呢?他们是不是没啥区别随便选呢?实际中究竟该选择哪一个呢? 甚至网上不少博客文章以讹传讹得出不少谬论,那今天的走进科学栏目将带您一一揭开谜底. 1.区别: 其实这块主要是围绕着接口和抽象类的区别以及一些设计原则而言的. 1.1 Inheritance Option: The limitation with "extends Thread&qu