`
Franciswmf
  • 浏览: 799911 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Callable接口、Future接口

 
阅读更多
参考博客:

--java.util.concurrent 之六:使用Future类和Callable类
http://kanglecjr.iteye.com/blog/1071199

--Java.util.concurrent 包 使用Future,Callable实现抢答模式
http://blog.csdn.net/u013025830/article/details/51373482

-- Java多线程之~~~Callable接口获得返回值
http://blog.csdn.net/a352193394/article/details/39505307

--Java多线程之Callable接口的实现
http://www.cnblogs.com/baizhanshi/p/6425209.html

--Callable,Runnable比较及用法
http://www.cnblogs.com/zeze/p/6293104.html

--Java线程(七):Callable和Future
https://blog.csdn.net/ghsau/article/details/7451464
https://www.cnblogs.com/MOBIN/p/6185387.html
https://www.cnblogs.com/baizhanshi/p/6425209.html
https://blog.csdn.net/u012664375/article/details/66967687
http://www.cnblogs.com/dolphin0520/p/3949310.html

import java.util.concurrent.Callable;
import java.util.concurrent.CountDownLatch;
import org.apache.log4j.Logger;

public class TaskDemo implements Callable<Boolean> {

/**
 * CountDownLatch类只提供了一个构造器:
 * 		public CountDownLatch(int count) {  };  //参数count为计数值
 * 然后下面这3个方法是CountDownLatch类中最重要的方法:
		public void await() throws InterruptedException { };   //调用await()方法的线程会被挂起,它会等待直到count值为0才继续执行
		public boolean await(long timeout, TimeUnit unit) throws InterruptedException { };  //和await()类似,只不过等待一定的时间后count值还没变为0的话就会继续执行
		public void countDown() { };  //将count值减1
 * @param args
 */
    private static final Logger LOGGER = Logger.getLogger(TaskDemo.class);
    private XTargetService xTargetService;
    private CountDownLatch countDownLatch;

    public TaskDemo() {
        super();
    }

    public TaskDemo(XTargetService xTargetService,CurrentContext context, CountDownLatch countDownLatch) {
        super();
        this.xTargetService = xTargetService;
        this.context = context;
        this.countDownLatch = countDownLatch;
    }

    @Override
    public Boolean call() throws Exception {
        try {
			Thread.sleep(3000);
        } catch (Exception e) {
            LOGGER.error("xxxxxx", e);
        }finally{
            if (countDownLatch != null) {
                countDownLatch.countDown();
            }
        }
        return true;
    }

}
分享到:
评论

相关推荐

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

    Java使用Callable和Future创建线程操作示例主要介绍了Java使用Callable和Future创建线程操作,结合实例形式分析了java使用Callable接口和Future类创建线程的相关操作技巧与注意事项。 首先,Java 5开始,Java提供了...

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

    2. **Callable**: 相比Runnable,Callable接口提供了更强大的功能,它包含一个带返回值的`call()`方法。这使得Callable任务能够返回计算结果或抛出异常。例如,如果一个任务需要计算一个复杂的数学问题,Callable...

    Java多线程Callable和Future接口区别

    例如,我们可以使用Callable接口来实现一个复杂的计算任务,然后使用Future接口来获取计算结果。 Java多线程Callable和Future接口的使用场景非常广泛,如计算复杂的数学问题、处理大规模数据、实现高性能的服务器...

    Callable和Future.doc

    Callable 和 Future 是 Java 多线程编程中两个重要的接口,它们在处理异步计算和结果获取方面发挥着关键作用。Callable 与 Runnable 相似,但具有更强大的功能,允许任务返回结果并处理异常。 Callable 接口: ...

    详解Java Callable接口实现多线程的方式

    Callable接口和Future接口的组合使用,能够实现多线程并发执行任务,并获取执行结果。 一、Callable接口简介 Callable接口是一个泛型接口,用于表示可以调用并返回结果的代码。它提供了一个call()方法,该方法...

    java并发包之Callable和Future

    `Callable`和`Future`的组合是Java并发包中一个强大的工具,它弥补了`Runnable`接口的不足,使得异步编程可以获取到返回值并处理异常。同时,`ExecutorService`作为线程池的实现,为并发编程提供了一种优雅的解决...

    Callable:Callable与Future在Web应用中的优化案例

    在Java编程中,Callable接口和Future接口是多线程编程中的重要工具,它们在Web应用程序的性能优化中扮演着关键角色。本篇文章将深入探讨Callable和Future如何在Web应用中提高效率并优化资源利用。 Callable接口是...

    Java中的Callable接口最全讲义

    Callable接口的基本用法 2.1 创建Callable任务 2.2 提交Callable任务 2.3 获取任务执行结果 Future接口的使用 3.1 获取任务执行状态 3.2 取消任务的执行 Callable与Runnable的对比 Callable的异常处理 Callable的...

    详解JDK中ExecutorService与Callable和Future对线程的支持

    它提供了一个框架来执行Runnable或Callable接口的实现。ExecutorService可以创建固定大小的线程池,也可以创建缓存线程池、调度线程池等。 在上面的代码中,我们使用了Executors.newFixedThreadPool方法创建了一个...

    浅谈在Java中使用Callable、Future进行并行编程

    从Java 1.5开始,引入了Callable和Future接口,为并行编程提供了一种更为高效和便捷的解决方案。 Callable接口是Java并发库中的一个关键接口,位于`java.util.concurrent`包下。Callable接口与Runnable接口类似,但...

    java通过Callable和Future来接收线程池的执行结果

    Callable接口可以获取到线程的返回结果,而Future接口可以通过get方法来承接线程执行的结果。下面我们通过一个示例代码来演示Callable和Future的使用: 首先,我们需要创建一个ThreadPoolExecutor来管理线程池。...

    java Callable与Future的详解及实例

    Callable 和 Future 是 Java 多线程编程中的两个关键接口,它们在 Java 5 及以上版本引入,以增强并发处理的能力。Callable 接口类似 Runnable,但提供了更丰富的功能,而 Future 对象则用于管理和控制异步计算的...

    Java多线程之Callable接口的实现

    Java多线程之Callable接口的实现 Java中的多线程编程是指在一个程序中同时运行多个线程,以提高程序的执行效率和响应速度。在Java中,有两种方式可以实现多线程编程,即继承Thread类和实现Runnable接口。然而,在...

    Java并发编程Callable与Future的应用实例代码

    我们使用Callable与Future来实现异步编程,将原本需要21次数据库访问的接口改造成10个线程并发访问数据库,极大地缩短了响应时间。 结论 Callable与Future是Java并发编程中两个非常重要的概念,它们通常结合使用来...

    Java多线程Callable接口实现代码示例

    FutureTask 是 Future 接口的实现类,也可以用作闭锁。 下面是一个简单的示例代码,计算 0 到 100 的和,返回结果: ``` public class TestCallable { public static void main(String[] args) { ...

    Java多线程文档

    Future接口代表异步计算的结果,Callable接口允许线程返回一个结果。FutureTask结合了Future和Callable,可以作为ExecutorService的submit()方法参数,获取异步计算的结果。 十、线程安全的最佳实践 1. 尽可能减少...

    java自定义任务类定时执行任务示例 callable和future接口使用方法

    在Java多线程编程中,`Callable`接口和`Future`接口是两个重要的组件,它们提供了比`Runnable`接口更强大的功能,尤其是在处理异步计算和结果获取时。本文将详细介绍这两个接口以及如何使用它们来创建自定义任务类以...

    Java多线程实现Callable接口

    2. **Future接口**:`Future, Object&gt;&gt;&gt; future` 是一个Future对象,它是用于获取Callable线程执行结果的接口。`future.get()` 方法会阻塞,直到计算完成并返回结果。 3. **ExecutorService**:`ExecutorService ...

    Java concurrency线程池之Callable和Future_动力节点Java学院整理

    所以,我们也说它实现了Future接口。 示例和源码分析 我们先通过一个示例看看Callable和Future的基本用法,然后再分析示例的实现原理。 import java.util.concurrent.Callable; import java.util.concurrent....

    JAVA中Callable的使用

    在Java编程语言中,Callable接口是用于创建能够返回结果并可能抛出异常的线程的。与Runnable接口相比,Callable接口提供了更强大的功能,因为Runnable只能定义无返回值的任务,而Callable可以定义有返回值的任务。这...

Global site tag (gtag.js) - Google Analytics