java多线程Callable,Future,FutureTask

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java多线程Callable,Future,FutureTask相关的知识,希望对你有一定的参考价值。

我们平时接触到的多线程Thread,Runnable,这两种方式不能返回线程执行后的结果。

Callable和Future,前者产生结果,后者拿到结果。

Callable和Future 推荐一篇不错的博客:http://blog.csdn.net/ghsau/article/details/7451464

public class GreyStartServlet extends HttpServlet {
  @Override
  public void init() throws ServletException {
     FutureTask<String> task = new FutureTask<String>(new Callable<String>() {
     @Override
     public String call() throws Exception {
     start(); // 使用另一个线程来执行该方法,会避免占用Tomcat的启动时间
     return "Collection Completed";
     }
     });
     new Thread(task).start();
  }
  // 希望Tomcat启动结束后执行的方法
  private static void start() throws Exception {
    Thread.sleep(1000);
} }

以上是关于java多线程Callable,Future,FutureTask的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程系列--“JUC线程池”06之 Callable和Future

Java多线程:Callable,Future,FutureTask

Java多线程知识-Callable和Future

Java 多线程 :入门- 简单试验ExecuteorService

Java线程和多线程(十三)——Callable,Future,FutureTask

JAVA多线程学习十-Callable与Future的应用