java

位置:IT落伍者 >> java >> 浏览文章

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


发布日期:2018年03月26日
 
Java线程:新特征-有返回值的线程

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

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

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

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

下面是个很简单的例子

import ncurrent*;

/**

* Java线程有返回值的线程

*

* @author Administrator ::

*/

public class Test {

public static void main(String[] args) throws ExecutionException InterruptedException {

//创建一个线程池

ExecutorService pool = ExecutorsnewFixedThreadPool();

//创建两个有返回值的任务

Callable c = new MyCallable(A);

Callable c = new MyCallable(B);

//执行任务并获取Future对象

Future f = poolsubmit(c);

Future f = poolsubmit(c);

//从Future对象上获取任务的返回值并输出到控制台

Systemoutprintln(>>>+fget()toString());

Systemoutprintln(>>>+fget()toString());

//关闭线程池

poolshutdown();

}

}

class MyCallable implements Callable{

private String oid;

MyCallable(String oid) {

thisoid = oid;

}

@Override

public Object call() throws Exception {

return oid+任务返回的内容;

}

}

>>>A任务返回的内容

>>>B任务返回的内容

Process finished with exit code

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

本文出自 熔 巖 博客请务必保留此出处

               

上一篇:提高Java代码可重用性的措施

下一篇:java写的打字游戏