资讯专栏INFORMATION COLUMN

实现callable接口的多线程

shery / 2718人阅读

摘要:对象实际上属于框架的功能类,接口和接口类似,但是提供了比更加强大的功能,主要表现为一下点可以在任务结束的时候提供一个返回值,无法提供这个功能。中的方法可以抛出异常,而不能。

Callable 对象实际上属于Executor框架的功能类,callable接口和runable接口类似,但是提供了比runnable更加强大的功能,主要表现为一下3点:
1 callable可以在任务结束的时候提供一个返回值,runnable无法提供这个功能。
2 callable中的call()方法可以抛出异常,而runnable不能。
3 运行callable可以拿到一个future对象,而future对象表示异步计算的结果,它提供了检查运算是否结束的方法,由于线程属于异步计算模型,所以无法从其他线程中得到方法的返回值,在这种情况之下,就可以使用future来监视目标线程调用call方法的情况,当调用future的get方法以获取结果时,当前线程就会被阻塞,直到call方法结束返回结果。

public class MyCallBack {

public static void main ( String[] args ) {

ExecutorService threadPool = Executors.newSingleThreadExecutor();
// 启动线程
Future stringFuture = threadPool.submit( new Callable< String >( ) {
  @Override
  public String call ( ) throws Exception {
return "nihao";
  }
} );
try {
  System.out.println( stringFuture.get() );
} catch ( InterruptedException e ) {
  e.printStackTrace( );
} catch ( ExecutionException e ) {
  e.printStackTrace( );
}

}
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75155.html

相关文章

  • java面试题

    摘要:抽象类表示的是,这个对象是什么。下面提供了一个完整的有返回结果的多线程测试例子,在下验证过没问题可以直接使用。创建固定数目线程的线程池。创建一个支持定时及周期性的任务执行的线程池,多数情况下可用来替代类。 接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象...

    lentrue 评论0 收藏0
  • Java—多线程基础

    摘要:多线程基础基本概念进程所谓进程就是运行在操作系统的一个任务,进程是计算机任务调度的一个单位,操作系统在启动一个程序的时候,会为其创建一个进程,就是一个进程。代码就不做过多解释了,没有代码搞个毛的多线程。运行状态拿到的线程开始执行。 多线程基础 基本概念 进程 所谓进程就是运行在操作系统的一个任务,进程是计算机任务调度的一个单位,操作系统在启动一个程序的时候,会为其创建一个进程,JVM就...

    mozillazg 评论0 收藏0
  • 1、多线程 2、线程

    摘要:一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。也就是说线程创建并执行需要给定线程要执行的任务。接口对线程对象和线程任务进行解耦。另外,通过适当的调整线程中的线程数目可以防止出现资源不足的情况。 01进程概念 *A:进程概念 *a:进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独...

    cnTomato 评论0 收藏0
  • Java多线程实现

    摘要:多线程的实现用多线程只有一个目的更好的利用资源烧水的例子当洗杯子花分钟线程要停分钟等待返回结果才能进行后续的烧水操作,新开一个线程执行洗杯子操作。指在并发的情况之下,该代码经过多线程使用,线程的调度顺序不影响任何结果。 Java多线程的实现 用多线程只有一个目的:更好的利用cpu资源.烧水的例子.(当洗杯子花5分钟,线程要停5分钟等待返回结果才能进行后续的烧水操作,新开一个线程执行洗杯...

    marek 评论0 收藏0
  • 线程池没你想的那么简单(续)

    摘要:前言前段时间写过一篇线程池没你想的那么简单,和大家一起撸了一个基本的线程池,具备线程池基本调度功能。线程池自动扩容缩容。回调以上就是线程池的构造函数以及接口的定义。所以我们在使用线程池时,其中的任务一定要做好异常处理。线程异常捕获的重要性。 showImg(https://segmentfault.com/img/remote/1460000019403163?w=1904&h=108...

    svtter 评论0 收藏0

发表评论

0条评论

shery

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<