温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JUC线程如何实现Callable接口

发布时间:2021-12-21 10:24:46 阅读:141 作者:iii 栏目:大数据
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

本篇内容主要讲解“JUC线程如何实现Callable接口”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JUC线程如何实现Callable接口”吧!

Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口

  • Callable 接口类似于 Runnable,两者都是为那些其实例可 能被另一个线程执行的类设计的。但是 Runnable 不会返 回结果,并且无法抛出经过检查的异常。

  • Callable 需要依赖FutureTask ,FutureTask 也可以用作闭锁

package com.gf.demo;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/**
 * 一、创建线程的方式三:实现Callable接口。相较于实现 Runnable 接口的方式,方法可以有返回值,并且可以抛出异常。
 * 
 * 二、执行Callable 方式,需要FutureTask 实现类的支持,用于接受运算结果。FutureTask 是Future接口的实现类
 *
 */public class TestCallable {
    
    public static void main(String args[]){
        ThreadDemo td = new ThreadDemo();
        FutureTask<Integer> result = new FutureTask<>(td);
        new Thread( result ).start();

        try {
            Integer sum = result.get();
            System.out.println(sum);
            System.out.println("--------------------------------");
        } catch (ExecutionException | InterruptedException e) {
            e.printStackTrace();
        }

    }}class ThreadDemo implements Callable<Integer> {

    @Override
    public Integer call() throws Exception {
        int num = 0;
        for (int i = 0 ; i < Integer.MAX_VALUE ; i++) {
            num = num + i;
        }
        return num;
    }}

到此,相信大家对“JUC线程如何实现Callable接口”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/2367201/blog/4417387

AI

开发者交流群×