文档章节

java.util.concurrent.Callable

Ryan-瑞恩
 Ryan-瑞恩
发布于 2015/08/26 14:07
字数 201
阅读 142
收藏 1
/**
 * A task that returns a result and may throw an exception.
 * Implementors define a single method with no arguments called
 * {@code call}.
 *
 * <p>The {@code Callable} interface is similar to {@link
 * java.lang.Runnable}, in that both are designed for classes whose
 * instances are potentially executed by another thread.  A
 * {@code Runnable}, however, does not return a result and cannot
 * throw a checked exception.
 *
 * <p>The {@link Executors} class contains utility methods to
 * convert from other common forms to {@code Callable} classes.
 *
 * @see Executor
 * @since 1.5
 * @author Doug Lea
 * @param <V> the result type of method {@code call}
 */
@FunctionalInterface
public interface Callable<V> {
    /**
     * Computes a result, or throws an exception if unable to do so.
     *
     * @return computed result
     * @throws Exception if unable to compute a result
     */
    V call() throws Exception;

}

Callable 和 Runnable 的使用方法大同小异, 区别在于: 
1.Callable 使用 call() 方法, Runnable 使用 run() 方法 
2.call() 可以返回值, 而 run()方法不能返回。 
3.call() 可以抛出受检查的异常,比如ClassNotFoundException, 而run()不能抛出受检查的异常。 


© 著作权归作者所有

共有 人打赏支持
Ryan-瑞恩

Ryan-瑞恩

粉丝 146
博文 226
码字总数 176302
作品 0
西安
后端工程师
关于java线程中断的问题,demo可以正常跑,但放到项目中就有问题

package com.code.demo; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concur......

heymanyou
10/18
0
0
使用java.util.concurrent.Callable多线程,在并发情况下,下图中msgPlatform等变量会相互受影响吗?

使用java.util.concurrent.Callable多线程,在并发情况下,下图中msgPlatform等变量会相互受影响吗? public class SendSmsThread implements Callable {private MsgPlatform msgPlatform; p......

javame
2015/04/17
52
0
ExecutorService & Callable实现多线程执行并取得每个线程的值

用ExecutorService运行多线程, 实现Callable接口,执行并取得每个线程的值的场景,如下图所示:![在此输入图片描述][1] [1]: http://static.oschina.net/uploads/space/2013/0929/173139_D8...

P&H
2013/09/29
0
1
JDK5.0新特性系列---11.1线程 Callable和Future

import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; /** 从本节开始,主要......

tavenli
2011/12/17
0
0
Akka2使用探索3(Duration 和 Deadline)

akka提供了两个关于时长的数据类型:Duration 和 Deadline,比如5秒钟这种含义。 Duration.Inf表示无限,Duration.MinusInf表示负无限 Deadline, 表示一个绝对的时间点,意义是最终期限,并且...

飞飞狐
2012/09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 小心着凉 @红薯

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:5.33起,其声呜呜然,如怨如慕,如泣如诉。余音袅袅,不绝如缕。分享Arch Enemy的单曲《Bridge Of Destiny (2009)》 《Bridge Of...

小小编辑
今天
162
4
what f,,

anlve
今天
2
0
初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
13
0
现场看路演了!

HiBlock
昨天
21
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部