您的位置:首页 > 编程语言 > Java开发

java.util.concurrent.locks callable带有返回值的线程【4】

2015-01-18 19:31 337 查看
实现多线程方法无非就是继承Thread类或者实现Runnable接口,重写的run方法是没有返回值的。。。

Java 并发包提供了可以带有返回值的接口,Callable方法执行后可以返回Future对象,就可以从该对象里获取到线程返回值。



import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class Test {

public static void main(String[] args) throws Exception {
ExecutorService pool = Executors.newFixedThreadPool(2);

MyCallable c1 = new MyCallable("A");
MyCallable c2 = new MyCallable("B");

Future<Object> f1 = pool.submit(c1);
Future<Object> f2 = pool.submit(c2);

System.out.println("---->" + f1.get().toString());
System.out.println("---->" + f2.get().toString());

pool.shutdown();
}

}

class MyCallable implements Callable<Object> {

private String oid;

public MyCallable(String oid) {
super();
this.oid = oid;
}

@Override
public Object call() throws Exception {
return oid + "任务返回的内容";
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: