`
hvang1988
  • 浏览: 50862 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

ExecutorCompletionService多线程处理(线程有返回结果)

    博客分类:
  • java
阅读更多
好消息,百度网盘专业搜索网站上线了
打开瞧一瞧:http://bitar.cn
package com.thread;

import java.util.concurrent.Callable;
import java.util.concurrent.CompletionService;
import java.util.concurrent.ExecutorCompletionService;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 多线程执行有返回值的处理
 * @author Administrator
 *
 */
public class ThreadResultExecutor {
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		ExecutorService exec=Executors.newFixedThreadPool(50);
		CompletionService<String> serv = new ExecutorCompletionService<String>(exec);
		//模拟,一个对象tt,在多个线程中使用,是否会影响相互的值
			for (int i = 0; i < 50; i++) {
				serv.submit(new runTest<String>("aa"+i));
			}
			for (int i = 0; i < 50; i++) {
				serv.submit(new runTest<String>("bb"+i));
			}
			System.out.println("start");
//			for (int i = 0; i < 50; i++) {
//				try {
//					//serv.take();
//					System.out.println(serv.take().get());
//					//System.out.println(serv.take().get());
//				} catch (Exception e) {
//					e.printStackTrace();
//				}
//			}
	        exec.shutdown();//此方法等待处理完毕后再释放
			//System.exit(0);
	        
	}

}
class runTest<String> implements Callable<String>{
	private String tt;
	
	@Override
	public String call() throws Exception {
		Thread.currentThread().sleep(2000);
		System.out.println( tt+"="+Thread.currentThread().getId());
		return (String) (tt+"="+Thread.currentThread().getId());
	}
	public runTest(String tt){
		this.tt=tt;
		//ttt.set(tt);
	}
}

分享到:
评论

相关推荐

    通过多线程任务处理大批量耗时业务并返回结果

    标题中的"通过多线程任务处理大批量耗时业务并返回结果"指的是在Java或其他支持多线程的编程语言中,如何有效地分配工作到多个线程,以便同时处理大量任务,并在任务完成后收集和处理结果。 描述中提到的"当监测到...

    java多线程处理数据库数据

    然后,我们将数据库操作封装为`Callable`任务,因为`Callable`可以返回结果,适合于数据库操作这种有返回值的操作。 ```java public class DatabaseTask implements Callable&lt;Void&gt; { private Connection ...

    相机采集、处理、显示多线程处理框架

    其中采集线程负责从相机中获取图像数据,处理线程负责对采集到的图像数据进行处理和算法分析,显示线程负责将处理后的结果显示在屏幕上。这种多线程处理方式可以大大提高相机图像处理的效率和速度,使得相机可以更快...

    多线程并行执行,汇总结果

    在IT行业中,多线程并行执行是一种常见的优化策略,特别是在处理大数据量或者需要高性能计算的任务时。"CountDownLatch" 和 "Thread" 是Java编程语言中实现多线程并行执行的关键工具,它们有助于提高程序的运行效率...

    分批取数 多线程数据处理

    分批取数 多线程数据处理

    java多线程处理大数据

    java多线程处理大数据,可根据配置的线程数,任务去调度处理

    多线程以JDBC的方式返回海量数据

    总结起来,通过多线程和JDBC的结合,我们可以高效地处理和返回海量数据,避免内存压力和单线程的性能瓶颈。这种技术适用于大数据分析、后台服务或其他需要大量读取数据库的应用场景。在实际操作中,应根据具体的业务...

    多线程处理数据(工具)样例

    在IT领域,多线程和并发处理是优化程序性能的关键技术。这个名为“多线程处理数据(工具)样例”的项目,显然旨在利用多线程的优势来加速数据流的处理。下面将详细探讨相关知识点。 多线程是操作系统提供的一种机制...

    libevent多线程处理

    本文将深入探讨如何在多线程环境中使用Libevent进行事件处理,并分享一个基于Libevent的多线程实现案例。 首先,理解Libevent的核心机制至关重要。Libevent提供了一个事件基础结构,它能够将来自不同来源的事件(如...

    Qt 之多线程处理多任务

    在Qt框架中,多线程处理多任务是提高应用程序性能和响应能力的重要手段。Qt提供了丰富的多线程支持,使得开发者能够充分利用现代计算机的多核处理器资源,避免UI线程因执行耗时操作而导致的界面假死问题。本文将深入...

    java多线程实现大批量数据导入源码

    在Java编程中,多线程技术是处理大数据批量导入或导出的重要手段。它能有效提升程序执行效率,尤其在数据库操作这样的I/O密集型任务中。本项目以"java多线程实现大批量数据导入源码"为题,旨在通过多线程策略将大量...

    多线程分块处理图像

    在IT领域,尤其是在计算机视觉和图像处理中,多线程技术常常被用来优化性能,特别是在处理高分辨率图像时。本文将深入探讨“多线程分块处理图像”这一主题,结合OpenCV库来阐述如何利用多线程技术提高图像处理效率。...

    Revit二次开发 c# 多线程处理

    这个类将包含我们的多线程任务,并且有一个方法(如`Execute`)用于执行实际的工作。例如: ```csharp public class MyExternalEvent : IExternalEvent { public void Execute(UIApplication app) { // 在...

    多线程并发处理的简单实现

    在编程领域,多线程并发处理是一种常见的优化技术,它能充分利用多核处理器的资源,提高程序的执行效率。在给定的标题“多线程并发处理的简单实现”中,我们可以深入探讨如何构建这样的系统。 首先,多线程并发处理...

    C#处理大容量数据,及多线程简单应用

    以下将详细介绍“C#处理大容量数据,及多线程简单应用”这一主题。 首先,当我们面临大量数据时,一个关键的考虑点是避免阻塞主线程,尤其是对于UI(用户界面)应用。在C#中,长时间运行的任务会阻塞UI线程,导致...

    可并行递归算法的递归多线程实现

    在并行处理中,多线程能够充分利用现代多核处理器的能力,通过同时执行多个线程来加速计算过程。本文旨在探讨如何在递归算法中运用多线程技术,以实现高效的并行计算。 #### Java多线程框架与递归算法结合 Java...

    C#多线程消息处理例子

    总结来说,这个C#多线程消息处理例子展示了如何在后台线程中执行任务并安全地将结果传递给UI线程。它涉及到的关键技术包括线程创建、消息队列、事件与委托、以及线程安全的UI更新。理解并掌握这些概念对于编写高性能...

    java并发(二十四)多线程结果组装

    本篇将探讨“多线程结果组装”的主题,它涉及到如何在多个并发执行的任务完成后,有效地收集并整合这些任务的结果。这个过程通常出现在分布式计算、数据处理或者并行计算的上下文中。 在Java中,我们可以通过`...

    多线程导入excel 数据

    在Java编程中,多线程导入Excel数据是一项常见的任务,特别是在大数据处理和高并发场景下。这个场景通常涉及到性能优化和资源管理,以确保系统稳定性和数据一致性。下面将详细阐述多线程导入Excel数据的核心知识点。...

    halcon与c#联合编程实例 多线程图像处理Project,适合初学者~

    在图像处理领域,多线程可以让我们同时处理多个图像,这对于实时或批量处理的应用至关重要。 以下是使用Halcon和C#实现多线程图像处理的一些关键步骤: 1. **设置项目环境**:首先,你需要在Visual Studio中创建一...

Global site tag (gtag.js) - Google Analytics