java种线程池多线程有返回值_Java线程-线程池-带返回值

Java5之前,线程是没有返回值的。Java5之后,可以写有返回值的任务了。

有返回值的任务必须实现Callable接口,没有返回值的任务实现Runnable接口。

执行Callable接口后,可以获得一个Future的一个对象,通过Feture的get方法就能获得返回的Object数据了。

代码如下:

public class ThreadExtend_Pool_Return_Value {

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

//创建一个线程池

ExecutorService executorService= Executors.newFixedThreadPool(2);

//创建有两个返回值的线程

Callable callable1=new CallableImpl("callable1");

Callable callable2=new CallableImpl("callable2");

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

Future future1=executorService.submit(callable1);

Future future2=executorService.submit(callable2);

//从future获取返回值,并输出到控制台

System.out.println(">>>>"+future1.get().toString());

System.out.println(">>>>"+future2.get().toString());

//关闭线程池

executorService.shutdown();

}

}

/**

* 有返回值的线程需要实现Callable接口

*/

class CallableImpl implements Callable{

private String oid;

CallableImpl(String oid){

this.oid=oid;

}

@Override

public Object call(){

return this.oid+"任务返回的内容";

}

}

运行后,结果如下:

>>>>callable1任务返回的内容

>>>>callable2任务返回的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值