java多线程基础-Callable的使用

学习内容来自尚硅谷周阳老师 

package geovis.demo;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

class MyCallAble implements Callable<Integer>{

    @Override
    public Integer call() throws Exception {
        System.out.println("1233223");
        return 123;
    }
}

/**
 *
 *使用Callable的意义在于可以返回线程中的方法的数据
 *
 * 如何找到FutureTask类来创建线程
 *   Thread构造方法只支持Runable及其实现类的对象,不支持Callable,因此需要
 *   找到一个实现了Runable的类,并且这个类操作了callable接口的实现类,以这个
 *   类为参数传递
 * 这是第三种开启线程的方式,用于并行计算流程。注意:get方法一般放到最后一行,
 * 让其他方法和线程同时进行,否则开启线程的意义将不存在
 * 在这里同一个方法同样的参数连续调用两次只会执行一次,例如:
 * new Thread(futureTask,"A").start();
 * new Thread(futureTask,"B").start();
 */

public class CallAbleTest {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        FutureTask<Integer> futureTask = new FutureTask(new MyCallAble());
        new Thread(futureTask,"A").start();
        Integer result = futureTask.get();
        System.out.println(result);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值