Callable的使用

intellij idea-register-license server:http://idea.iteblog.com/key.php



参考:http://blog.csdn.net/heyutao007/article/details/19072675


(1)Callable规定的方法是call(),Runnable规定的方法是run().

(2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得

(3)call方法可以抛出异常,run方法不可以


步骤1:创建线程池:
      ExecutorService pool = Executors.newCachedThreadPool();
步骤2:通过Runnable对象或Callable对象将任务提交给ExecutorService对象:

个人例子:

package helper.thread;

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

public class MyThread implements Callable{
    public static MyDeal myDeal = new MyDeal();
    MyLogTest log = new MyLogTest();
    private String packname;
    ExecutorService pool = null;

    public MyThread(String packname) {
        this.packname = packname;
    }
    //单个线程处理方法,如果要串行处理,在Object前面加上synchronized
    @Override
    public Object call() throws Exception {
        String flag = "0";
        synchronized (this) {
            return "test";//具体实现
            }
        return flag;
    }
    public String output(String name){
        String back_str="";
        try {
            //创建一个线程池
            pool = Executors.newFixedThreadPool(100);
            back_str = pool.submit( new MyThread(name)).get().toString();//得到返回值
            //关闭线程池
            pool.shutdown();
        }catch(Exception e){
            log.level("debug",e.getMessage());
        }
        System.out.println("back_str = "+back_str);
        return back_str;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值