- 浏览: 1654207 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (405)
- C/C++ (16)
- Linux (60)
- Algorithm (41)
- ACM (8)
- Ruby (39)
- Ruby on Rails (6)
- FP (2)
- Java SE (39)
- Java EE (6)
- Spring (11)
- Hibernate (1)
- Struts (1)
- Ajax (5)
- php (2)
- Data/Web Mining (20)
- Search Engine (19)
- NLP (2)
- Machine Learning (23)
- R (0)
- Database (10)
- Data Structure (6)
- Design Pattern (16)
- Hadoop (2)
- Browser (0)
- Firefox plugin/XPCOM (8)
- Eclise development (5)
- Architecture (1)
- Server (1)
- Cache (6)
- Code Generation (3)
- Open Source Tool (5)
- Develope Tools (5)
- 读书笔记 (7)
- 备忘 (4)
- 情感 (4)
- Others (20)
- python (0)
最新评论
-
532870393:
请问下,这本书是基于Hadoop1还是Hadoop2?
Hadoop in Action简单笔记(一) -
dongbiying:
不懂呀。。
十大常用数据结构 -
bing_it:
...
使用Spring MVC HandlerExceptionResolver处理异常 -
一别梦心:
按照上面的执行,文件确实是更新了,但是还是找不到kernel, ...
virtualbox 4.08安装虚机Ubuntu11.04增强功能失败解决方法 -
dsjt:
楼主spring 什么版本,我的3.1 ,xml中配置 < ...
使用Spring MVC HandlerExceptionResolver处理异常
import java.util.ArrayList; import java.util.List; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.apache.log4j.Logger; public class SyncTaskExecutor { private Logger logger = Logger.getLogger(SyncTaskExecutor.class); private BlockingQueue<SyncTask> syncTaskQueue; private ExecutorService threadPool; private WorkingThread workingThread; public SyncTaskExecutor() { syncTaskQueue = new ArrayBlockingQueue<SyncTask>(100); threadPool = Executors.newFixedThreadPool(8); workingThread = new WorkingThread(); } public SyncTaskExecutor(ExecutorService threadPool){ syncTaskQueue = new ArrayBlockingQueue<SyncTask>(100); this.threadPool = threadPool; workingThread = new WorkingThread(); } public void addTask(SyncTask task){ try { syncTaskQueue.put(task); } catch (InterruptedException e) { e.printStackTrace(); } } class WorkingThread extends Thread{ @Override public void run() { while(true){ SyncTask syncTask; try { logger.info("executing a task!"); syncTask = syncTaskQueue.take(); threadPool.execute(syncTask); } catch (InterruptedException e) { } } } } public void start() { workingThread.start(); logger.info("SyncTaskExecutor start!"); } public void shutdown() { workingThread.interrupt(); logger.info("SyncTaskExecutor shutdown!"); } public static void main(String[] args) throws InterruptedException { SyncTaskExecutor executor = new SyncTaskExecutor(); executor.start(); SyncTask task = new DefaultSyncTask(); List<String> syncUrlList = new ArrayList<String>(); syncUrlList.add("http://localhost:8080/PublishSystem/publish/db.sql"); syncUrlList.add("http://localhost:8080/PublishSystem/publish/test.txt"); task.setSyncUrlList(syncUrlList); executor.addTask(task); Thread.currentThread().sleep(5000); executor.shutdown(); } }
使用BlockingQueue实现一个发布和同步的TaskExecutor
发表评论
-
Builder模式遇到继承
2013-10-13 13:48 0interface Self<T extends ... -
Builder模式遇到集成
2013-10-13 13:47 0package com.qunar.qss.business. ... -
JVM调优Step by Step
2012-02-02 17:38 0现代的JVM能够适应于各种应用和领域,每个应用和领域的使用 ... -
commons-lang StringUtils#split的坑
2011-12-31 10:11 3154今天用StringUtils#split,陷入了前两个坑。需求 ... -
使用scala.sys.process包和系统交互
2011-07-19 00:00 6490在Java中我们可以使用Runtime.getRuntime( ... -
HttpClient Json请求工具
2011-05-05 18:32 17849发送Json请求,结果返回Json. public sta ... -
利用Java反射实现通用的Excel报表
2011-04-12 16:00 2019最近有很多客户报表需要提供客户下载,需要生成一个Excel的格 ... -
深入异常处理
2011-03-31 20:46 1800异常处理是写一个健壮 ... -
Java序列化注意一些点
2011-03-12 21:04 18461.序列化ID的问题: 标示了版本号,版本号一致才能反序列化成 ... -
Java动态代理
2010-09-24 00:34 4460Java提供了动态代理,可以完成AOP和装饰模式的功能,主要的 ... -
Java Timestamp是和ExtJS的timestamp不兼容
2010-08-09 20:33 3353Timestamp纳秒级别的,ExtJS的timestamp使 ... -
XML DocumentBuilder#parse(String str)
2010-07-06 15:55 3887DocumentBuilderFactory dbf = ... -
[备忘]String#split/substring的子串会共享原来大的String
2010-03-29 17:18 1491如果每次需要大字符串中的很小的一个字串,可能会引起内存中大量的 ... -
runtime.exec()执行进程block死锁问题
2010-01-18 21:39 5286最近在java代码中使用runtime.exec执行rsync ... -
URL中文问题
2010-01-08 14:46 10525最近使用HttpClient,和Java的java.net.U ... -
使用XStream把Java对象XML/JSON格式的序列化和反序列化
2009-05-05 11:37 6235试了一下Thoughtworks的XStream,以测试驱动和 ... -
从《编程的未来》这篇文章想到C++和Java语言的爽与不爽
2009-05-01 23:44 3970从编程的未来这篇文 ... -
《Effetive Java》读书笔记二
2009-02-23 14:23 1601第二章 所有对象共有的 ... -
《Effetive Java》读书笔记一
2009-02-19 11:36 2180《Effetive Java》和 《Effective C++ ... -
如何彻底杜绝别人使用你的类
2008-05-22 19:30 2356今天在eclipse源码中发 ...
相关推荐
Spring的TaskExecutor是Java线程池抽象的一个重要组成部分,它为开发者提供了一种在Spring框架内使用线程池的方式,而无需直接依赖于特定的Java版本或Java EE环境中的线程池实现。TaskExecutor接口的设计使得在不同...
Spring TaskExecutor是Spring框架中的一个核心组件,它提供了一种在后台执行任务的机制,使得开发者可以方便地异步处理任务,提高应用的性能和响应速度。本篇将深入探讨Spring TaskExecutor的基本概念、使用方法以及...
标题中的“征服 Kestrel + XMemcached + Spring TaskExecutor”揭示了本次讨论的核心内容,涉及到三个关键的技术组件:Kestrel、XMemcached以及Spring的TaskExecutor。这些技术都是在构建高性能、可扩展的分布式系统...
TaskExecutor TaskExecutor解决什么问题? 我见过太多项目,其中AsyncTask和线程通常是在没有考虑的情况下完成的。 我什至看过匿名的AyncTask实现:( TaskExecutor将所有异步活动整合到一个ExecutorService中,可以...
TaskExecutor Java通用任务执行程序,基于java.util.concurrent.ScheduledExecutorService。 Java通用的任务执行器,基于java.util.concurrent.ScheduledExecutorService工具类实现。 Maven: <groupId>...
【Kestrel任务执行者:Kestrel + XMemcached + Spring TaskExecutor】 在Java开发领域,高效的任务调度和执行是关键部分,特别是在分布式系统中。这个项目名为"kestrel-task-executor",它结合了Kestrel消息队列、...
public TaskExecutor taskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(5); // 核心线程数 executor.setMaxPoolSize(10); // 最大线程数 executor...
private TaskExecutor taskExecutor; public void executeAsyncTask(Runnable task) { taskExecutor.execute(task); } ``` 在`spring3.0.5_TaskExecutor`这个压缩包中,可能包含了Spring 3.0.5版本关于线程池的...
Spring调度器主要由两个核心组件组成:`TaskExecutor`和`TaskScheduler`,它们分别用于异步执行任务和计划任务。 **TaskExecutor** `TaskExecutor`是Spring提供的一个接口,用于执行异步任务。通过实现这个接口,你...
"解决SpringBoot项目使用多线程...使用TaskExecutor机制可以解决该问题,通过在配置文件中添加TaskExecutor的配置,并在Controller层中使用@Autowired注解来注入TaskExecutor,然后使用TaskExecutor来执行我们的任务。
<property name="taskExecutor" ref="taskExecutor"/> <!-- 要启动的主线程 --> <!-- 容器加载运行延迟1秒 --> <!-- 任务间隔时间(sleep时间)执行完第一组任务,执行第二组任务相隔时间,两个任务在...
public TaskExecutor taskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(5); executor.setMaxPoolSize(10); executor.setQueueCapacity(20); ...
TaskExecutor executor = new TaskExecutor(new HighPriorityTaskExecutionStrategy()); executor.execute(highPriorityTask); // 执行高优先级任务 executor = new TaskExecutor(new ...
Spring通过其`TaskExecutor`接口提供了对线程池的支持,该接口定义了异步执行任务的方法。以下是关于Spring线程池(同步、异步)的详细解析: 一、Spring异步线程池类图 Spring提供了一系列的`TaskExecutor`实现,...
TaskExecutor executor = new TaskExecutor(); executor.executeTask(myTask); } } ``` 通过这种方式,`TaskExecutor`可以在完成任务后通知`MyTask`,而无需了解`MyTask`的具体实现。这种松散耦合的特性使得代码...
TaskExecutor which can executes ordered, cyclicbarrier, delayed and timer Task. #同学们在日常开发中有没有遇到以下场景: 两个原子任务,任务2需要等待任务1完成了才能进行。 任务3需要等任务1和任务2都完成了...
@Qualifier("eventExecutor") TaskExecutor taskExecutor) { SimpleApplicationEventMulticaster multicaster = new SimpleApplicationEventMulticaster(); multicaster.setTaskExecutor(taskExecutor); return ...
`TaskExecutor`接口是Spring为各种线程池服务提供的一种抽象,它的目的是统一客户端的视图,允许应用程序无需关心底层实现。这个接口仅有一个`execute(Runnable task)`方法,用于提交一个可运行的任务,根据具体实现...
Spring通过其`Task`模块提供了任务调度的功能,主要由两个核心组件构成:`TaskExecutor`和`TaskScheduler`。`TaskExecutor`用于异步执行任务,而`TaskScheduler`则用于计划未来的任务执行。这两个接口提供了灵活的...
这篇文章将对Spring中的TaskExecutor和TaskScheduler接口进行详细讲解,并通过示例代码帮助理解它们的使用。 **一、TaskExecutor** TaskExecutor是Spring 2.0引入的抽象接口,用于执行异步任务。它与Java 5的`java...