`
yaozhiqiang109
  • 浏览: 117432 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

多线程ExecutorService使用实例

    博客分类:
  • JAVA
 
阅读更多

 

 

public interface ListCollectionCallback<E extends Object> {
	public void call(List<E> collection);
}

 

 

实现Runnable,处理业务逻辑

 

public class ProcessDataFutureCallable implements Runnable {

	@Override
	public void run() {
		//处理业务逻辑
	}

}

  多线程异步处理业务,通过future同步返回

 

 

	final List<Future<?>> dataList = new ArrayList<Future<?>>();	
        final ExecutorService exePool = Executors.newFixedThreadPool(threadNum);
		ListCollectionCallback<String> callable = new ListCollectionCallback<String>() {
			@Override
			public void call(List<String> collection) {
				ProcessDataFutureCallable future=new ProcessDataFutureCallable();
				dataList.add(exePool.submit(future));
			}
		};
		//剥离业务调用callable
		CollectionUtils.splitCollectionHandle(callable);
		for (Future<?> future : dataList) {
			try {
				future.get();
			} catch (InterruptedException e) {
				logger.warn("线程异常中断", e);
			} catch (ExecutionException e) {
				logger.warn("线程异常中断", e);
			} catch (Exception e) {
				logger.warn("发生异常", e);
			}
		}
		exePool.shutdown();

 

 

 

分享到:
评论

相关推荐

    多线程相关代码(新)

    包括阻塞队列、阻塞栈、ExecutorService、Future、ExecutorCompletionService、死锁、join、重入锁、读写锁、多线程抢票、信号量、signal/await、ThreadLocal等的实例。

    12行代码,使用Java的并发和多线程技术实现简单的任务调度器

    实现了一个简单的任务调度器,可以安排任务在指定的延迟时间后执行。 使用Java的...这个功能还可以通过扩展来实现更高级的功能,例如支持多个任务调度器实例、支持动态调整线程池大小、支持任务优先级等。

    多线程消息:InterviewSolution

    多线程消息此解决方案使用Files.lines(Paths.get(path))创建一行行,这些行分别包装在Runnable处理器类Consumer并传递给ExecutionSevice例如FixedOrderedExecutor实例)以及消息ID来执行。 执行程序类...

    使用Java匿名内部类实现一个简单的线程池.txt

    这段代码实现了一个简单的线程池ExecutorService,其中使用了Java的匿名内部类。...这个简单的示例代码展示了如何使用Java匿名内部类来实现一个线程池的简单功能,方便了对多线程任务的管理和执行。

    Java—并发编程—-线程创建方式

    一、背景 多线程能够在操作系统多核配置的基础上,更好的利用服务器多个...具体使用方式,创建一个类并继承Thread接口,然后实例化线程对象并调用start()方法启动线程,start方法是navite方法。代码如下 private stat

    java8源码-concurrency:java并发总结

    并发多线程从简到全 参考: 目录: [TOC] 相关文档: kwseeker/netty Executors线程池.md 1 基本概念 1.1 CPU与线程的关系 1.2 线程与进程的区别和关系 1.3 吞吐量 1.4 线程安全 1.5 线程声明周期 1.6 守护线程 1.7 ...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--多线程之线程池ExecutorService |--字体为粗体 |--安卓下的多线程断点上传 |--对话框与进度条结合用法 |--屏幕之Activity全屏 |--屏幕之横竖屏切换 |--屏幕之调节屏幕亮度 |--屏幕相关之Display类获取屏幕尺寸和...

    Simple Client Server Chat Example:一个简单的聊天系统的例子-开源

    多线程部分旨在显示如何通过将方法放在单独的线程中来避免阻塞方法,因此未使用ExecutorService。 服务器和客户端中有两个可运行的接口,以显示如何管理对话框。 套接字部分旨在说明使用TCP / IP进行简单的通信是...

    \java超强笔记(超级经典)

    java.util.concurrent 包含了常用的多线程工具,是新的多线程工具的主体。 java.util.concurrent.atomic 包含了不用加锁情况下就能改变值的原子变量。 java.util.concurrent.locks 包含锁定的工具。 ...

    Java并发编程实战

    书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高...

    JAVA核心知识点整理(有效)

    2.1. 线程 ...................................................................................................................................................... 20 2.2. JVM 内存区域 .....................

Global site tag (gtag.js) - Google Analytics