快速业务通道

Java线程:新特征-有返回值的线程 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

Java线程:新特征-有返回值的线程

时间:2011-02-20 51cto博客 leizhimin

在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写。或者干脆绕过这道坎,走别的路了。

现在Java终于有可返回值的任务(也可以叫做线程)了。

可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。

执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了。

下面是个很简单的例子:

import java.util.concurrent.*; /** * Java线程:有返回值的线程 * * @author Administrator */ public class Test {          public static void main(String[] args) throws ExecutionException, InterruptedException {                  //创建一个线程池                  ExecutorService pool = Executors.newFixedThreadPool(2);                  //创建两个有返回值的任务                  Callable c1 = new MyCallable("A");                  Callable c2 = new MyCallable("B");                  //执行任务并获取Future对象                   Future f1 = pool.submit(c1);                  Future f2 = pool.submit(c2);                  //从Future对象上获取任务的返回值,并输出到控制台                   System.out.println(">>>"+f1.get().toString());                  System.out.println(">>>"+f2.get().toString());                  //关闭线程池                  pool.shutdown();          } } class MyCallable implements Callable{          private String oid;          MyCallable(String oid) {                  this.oid = oid;          }          @Override           public Object call() throws Exception {                  return oid+"任务返回的内容";          } }

>>>A任务返回的内容 >>>B任务返回的内容 Process finished with exit code 0

非常的简单,要深入了解还需要看Callable和Future接口的API啊。

出处:http://lavasoft.blog.51cto.com/62575/222082

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号