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

来源:互联网 发布:纯爱社区 域名 编辑:程序博客网 时间:2024/05/29 08:33

实现多线程方法无非就是继承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;}@Overridepublic Object call() throws Exception {return oid + "任务返回的内容";}}


0 0
原创粉丝点击