基于Java Callable接口实现线程代码实例

 更新时间:2020年08月20日 10:56:47   作者:javase-->  
这篇文章主要介绍了基于Java Callable接口实现线程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

实现Callable接口(jdk8新特性)

可以获得线程的返回值

*前两种方式没有返回值,因为run方法返回void

创建一个未来任务类对象 Futrue task = new Future(Callable<>);重写call()方法    可以使用匿名内部类方式

task.get()方法获取线程返回结果

get方法执行会导致当前方法阻塞 效率较低

代码如下

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

public class Test_13 {
  public static void main(String[] args) {
    System.out.println(Thread.currentThread().getName() + "begin");
    FutureTask task = new FutureTask(new Callable() {
      @Override
      public Object call() throws Exception {
        System.out.println(Thread.currentThread().getName() + "start");
        Thread.sleep(1000 * 5);
        int a = 100;
        int b = 200;
        System.out.println(Thread.currentThread().getName() + "over");
        return a + b;
      }
    });
    Thread thread = new Thread(task);
    thread.start();
    try {
      System.out.println(task.get());
    } catch (InterruptedException e) {
      e.printStackTrace();
    } catch (ExecutionException e) {
      e.printStackTrace();
    }
    System.out.println(Thread.currentThread().getName() + "end");
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot Starter自定义之创建可复用的自动配置模块方式

    SpringBoot Starter自定义之创建可复用的自动配置模块方式

    本文将详细介绍如何设计和实现一个自定义的Spring Boot Starter,帮助读者掌握这一强大技术,提升代码复用性和开发效率,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • MyBatis-plus更新对象时将字段值更新为null的实现方式

    MyBatis-plus更新对象时将字段值更新为null的实现方式

    mybatis-plus在执行更新操作,当更新字段为 空字符串 或者 null 的则不会执行更新,如果要将指定字段更新null,可以通过以下三种方式实现,感兴趣的小伙伴跟着小编一起来看看吧
    2023-10-10
  • 最全总结SpringBean的作用域管理

    最全总结SpringBean的作用域管理

    今天给大家详细总结了SpringBean的作用域管理,文中有非常详细的图文介绍以及代码示例,对正在学习java的小伙伴们还很有帮助,需要的朋友可以参考下
    2021-05-05
  • java实现轻轻松松控制台斗地主的示例代码

    java实现轻轻松松控制台斗地主的示例代码

    这篇文章主要介绍了java实现轻轻松松控制台斗地主,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 基于Java的Spring框架来操作FreeMarker模板的示例

    基于Java的Spring框架来操作FreeMarker模板的示例

    这篇文章主要介绍了基于Java的Spring框架来操作FreeMarker模板的示例,讲到了用于进行web模板文件的插值操作等例子,需要的朋友可以参考下
    2016-03-03
  • java页面中文乱码的解决办法

    java页面中文乱码的解决办法

    做java开发的朋友碰到最多的就是中文乱码这个问题了,下面介绍页面提交时与url中文乱码的一些解决办法
    2013-11-11
  • SpringMVC+MyBatis声明式事务管理

    SpringMVC+MyBatis声明式事务管理

    在最近的一个项目中,采用springMVC、mybatis,MySQL、tomcat,事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的抽象,
    2015-08-08
  • java 中复合机制的实例详解

    java 中复合机制的实例详解

    这篇文章主要介绍了java 中复合机制的实例详解的相关资料,希望通过本文大家能了解继承和复合的区别并应用复合这种机制,需要的朋友可以参考下
    2017-09-09
  • Java函数式编程(二):集合的使用

    Java函数式编程(二):集合的使用

    这篇文章主要介绍了Java函数式编程(二):集合的使用,本文着重讲解了遍历列表的一些方法,需要的朋友可以参考下
    2014-09-09
  • springboot security快速使用示例详解

    springboot security快速使用示例详解

    这篇文章主要介绍了springboot security快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03

最新评论