你的位置:首页 > Java教程

[Java教程]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);
}}