`
mozhenghua
  • 浏览: 324513 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

FutureTask java

    博客分类:
  • java
阅读更多

 

在java中执行执行多线程工作流,有时候主线程需要拿到子线程的执行结果,而且会需要根据一点的条件终止子线程的执行,这样的需求用 jdk中的futureTask实现比较好,代码如下

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class TestFutureTask {

	private FutureTask task = new FutureTask(new Callable<String>() {

		@Override
		public String call() throws Exception {

			Thread.sleep(1000 * 3);

			return "hello";
		}

	});

	private void start() throws Exception {
		Thread t = new Thread(task);
		t.run();

		System.out.println(task.get());

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		TestFutureTask test = new TestFutureTask();

		test.start();

	}

}

 

分享到:
评论
1 楼 bo_hai 2014-06-29  
start() 可以修改成:
    private void start() throws Exception {  
        task.run();
  
        System.out.println(task.get());  
  
    }

相关推荐

    futuretask用法及使用场景介绍

    ```java public class FutureTaskForMultiCompute { public static void main(String[] args) { FutureTaskForMultiCompute inst = new FutureTaskForMultiCompute(); // 创建任务集合 List&lt;FutureTask&lt;Integer&gt;...

    Java线程池FutureTask实现原理详解

    Java线程池FutureTask实现原理详解 Java线程池FutureTask实现原理详解是Java多线程编程中的一种重要机制,用于追踪和控制线程池中的任务执行。下面将详细介绍FutureTask的实现原理。 类视图 为了更好地理解...

    Java中的Runnable,Callable,Future,FutureTask的比较

    Java中的Runnable、Callable、Future和FutureTask是Java多线程编程中的核心概念,它们各自扮演着不同的角色,共同协作以实现并发任务的管理和执行。 1. **Runnable**: Runnable是最基本的多线程接口,它只有一个`...

    比较java中Future与FutureTask之间的关系

    在Java中,Future和FutureTask都是用于获取线程执行的返回结果,但是它们之间存在一些差异和关联。本文将详细介绍Future和FutureTask的关系、使用和分析。 一、Future介绍 Future位于java.util.concurrent包下,是...

    FutureTask学习

    `FutureTask`是Java并发编程中的一个重要组件,它位于`java.util.concurrent`包下,是`Executor`框架的一部分。这个类结合了`Runnable`或`Callable`接口的特性,并提供了异步执行的能力,同时允许你在任务完成后获取...

    spring线程池ThreadPoolExecutor配置以及FutureTask的使用

    `FutureTask`是`java.util.concurrent`包中的一个类,它实现了`Future`接口,允许我们执行一个任务并获取其结果。当我们提交一个`FutureTask`到线程池时,可以异步地执行任务,并在需要时获取结果。下面是一个使用`...

    Java中Future、FutureTask原理以及与线程池的搭配使用

    Java中的`Future`和`FutureTask`是并发编程中重要的工具,它们允许程序异步执行任务并获取结果。`Future`接口提供了对异步计算结果的访问和控制,而`FutureTask`是`Future`的一个具体实现,它还同时实现了`Runnable`...

    Java FutureTask类使用案例解析

    Java FutureTask类使用案例解析 Java FutureTask类是一种异步计算的工具,用于执行长时间的任务并获取结果。它实现了Runnable和Future接口,既可以作为一个Runnable对象提交给Executor执行,也可以作为一个Future...

    Java 多线程与并发(17-26)-JUC线程池- FutureTask详解.pdf

    ### Java多线程与并发(17-26)-JUC线程池-FutureTask详解 #### 一、概述 本文将围绕Java多线程与并发中的重要概念——`FutureTask`进行深入探讨。`FutureTask`是Java并发库中的一个关键组件,它实现了`...

    FutureTask底层实现分析,有了FutureTask主线程要想获得工作线程(异步计算线程)的结果变得比较简单

    FutureTask 是 Java 中的一种非常重要的多线程设计模式,用于异步计算线程之间的结果传递。在 JDK 中,FutureTask 类是 Future 模式的实现,它实现了 Runnable 接口,作为单独的线程运行。在其 run() 方法中,通过 ...

    Android(Java)之多线程结果返回——Future 、FutureTask、Callable、Runnable

    `Future`、`FutureTask`、`Callable`和`Runnable`是Java并发编程中的核心接口和类,它们在Android开发中同样有着广泛的应用。下面将详细介绍这些概念以及它们如何协同工作。 1. `Runnable`: 这是Java中最基础的多...

    简谈java并发FutureTask的实现

    Java并发编程中,`FutureTask`是一个非常关键的组件,它结合了`Runnable`和`Future`接口的能力,使得我们可以在异步执行的任务完成后获取其结果。`FutureTask`不仅是一个可取消的任务,还能报告其执行状态。在这个...

    Java线程超时监控

    在Java编程中,多线程是并发执行任务的重要方式,然而在实际应用中,我们可能会遇到某些线程执行时间过长或死锁的情况,这可能导致系统资源的浪费甚至整体性能下降。因此,对线程进行超时监控是必要的,以确保程序的...

    揭密FutureTask.docx

    《揭密FutureTask:Java异步编程的核心工具》 在Java并发编程中,FutureTask扮演着至关重要的角色,它是实现异步计算的关键组件。本文将深入探讨FutureTask的原理和用法,帮助开发者更好地理解和利用这个强大的工具...

    java_util_concurrent中文版pdf

    《Java Util Concurrent中文版》是Java并发编程领域的重要参考资料,主要涵盖了Java标准库中的`java.util.concurrent`包及其相关类和接口。这个包是Java多线程编程的核心,提供了高效、安全的并发工具,帮助开发者...

    java多线程编程同步器Future和FutureTask解析及代码示例

    Java多线程编程中,`Future` 和 `FutureTask` 是两种重要的同步工具,它们用于管理异步计算的结果。在Java并发编程中,通常我们会使用`ExecutorService`来提交任务,而`Future`和`FutureTask`就是与这些任务交互的...

    Java使用Callable和Future创建线程操作示例

    "Java使用Callable和Future创建线程操作示例" Java使用Callable和Future创建线程操作示例主要介绍了Java使用Callable和Future创建线程操作,结合实例形式分析了java使用Callable接口和Future类创建线程的相关操作...

    java并发编程内部分享PPT

    Executor框架中的FutureTask类结合了Future和Runnable,可以在任务完成后获取结果。 总的来说,这份“java并发编程内部分享PPT”涵盖了Java并发编程的多个重要方面,包括线程创建与管理、同步机制、并发容器、...

    java聊天室(绝对经典)

    6. 异步编程:Java 8的CompletableFuture或FutureTask,以及如何利用它们实现非阻塞的代码执行。 通过对这三个不同风格的聊天室的源码分析和实践,你不仅可以掌握Java网络编程的基础,还能深入了解多线程、并发控制...

    复习java基础.pdf

    - 使用`Callable`和`FutureTask`:创建实现`Callable`接口的类,通过`FutureTask`包装`Callable`对象,再用`FutureTask`创建并启动线程,`FutureTask.get()`用于获取线程执行结果。 以上知识点涵盖了Java基础中的...

Global site tag (gtag.js) - Google Analytics