问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java Callable接口的call方法什么时候被调用

发布网友 发布时间:2022-05-08 01:15

我来回答

2个回答

热心网友 时间:2023-11-23 04:58

线程提交执行的时候就会被调用,就像run方法一样,只不过这里在未来可以得到call执行的结果

import java.util.ArrayList;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

class TaskWithResult implements Callable<String>{
private int id;
private static int count =10;
private final int time =count--;
public TaskWithResult(int id){
this.id = id;
}

@Override
public String call() throws Exception {
TimeUnit.MILLISECONDS.sleep(100);
return "Result of TaskWithResult : "+ id+", Time= "+time;
}

}
public class CallableDemo {

public static void main(String[] args) throws InterruptedException, ExecutionException {
 ExecutorService exec = Executors.newCachedThreadPool();
 ArrayList<Future<String>> results =new ArrayList<Future<String>>();
 for(int i=0;i<10;i++){
 results.add(exec.submit(new TaskWithResult(i)));
 }
 
 for(Future<String> fs : results){
 System.out.println(fs.get());
 }
}

}

热心网友 时间:2023-11-23 04:58

Runnable和Callable的区别:
(1)Runnable是自从java1.1就有了,而Callable是1.5之后才加上去的
(2)Callable规定的方法是call(),Runnable规定的方法是run()
(3)Callable的任务执行后可返回值,而Runnable的任务是不能返回值(是void)
(4)call方法可以抛出异常,run方法不可以
(5)运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。
(6)加入线程池运行,Runnable使用ExecutorService的execute方法,Callable使用submit方法。
Callable接口也是位于java.util.concurrent包中。Callable接口的定义为:

Java代码
public interface Callable<V>
{
V call() throws Exception;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胜达这款车百公里油耗多少? 胜达节能油加盟办厂可靠吗是不是骗子 河南洛阳胜达就是骗子,我把钱交了也不来人了,他们一个老总说了爱咋办... 胜达油是个骗局吗 胜达节能油是什么? 叩解度关于叩解的论述 湿重跟湿重有关的打浆磨片 戴尔XPS M1330-950重要参数 如果到别的单位去面试的话 如果人家问起为什么会选择这家公司而离开另外... 学生会被两个部门同时面试怎么办 java多线程中的callable和future常用在哪些地方 runnable和callable区别是什么? JAVA中Callable的call方法抛出的异常会抛到那里? 水瓶座男生是怎么样的人? 金牛男和水瓶男怎么相处 水瓶座男什么性格 天平座,金牛座,水瓶座,白羊座男女的性格怎样的呀! 水瓶座男生的性格 七三年牛男水瓶座的性格特点 金牛座与水瓶座有什么共同点 大家说水瓶男和金牛男谁更好? 电信ITV太复杂老人不会用,怎么能简单操作 iTV电视商城怎么使用? 隐藏华为解锁图案 早餐为了养肝,要多食西红柿和柠檬等酸性水果吗? 吃西红柿对肝病能有提高帮助吗? 多吃西红柿去肝火吗? 多食西红柿等酸性蔬菜和水果,有益于养肝吗? 《世界军事》杂志九几年的封面诗歌 现在市面上一共有多少种连续出版的军事类期刊杂志? java中使用继承Callable的方式实现多线程? java猜数游戏 在java中有一个方法调用了很多个方法怎么用参数控制调用其中的任何一个方法??? 你好,我想贷款十万,无抵押,有社保公积金,月薪4500左右,银行能批 公积金只能贷10万有必要吗 成都公积金也能信用贷款吗? qq账号处于保护模式 已经申诉成功 解除安全模式时需要发送短信,可是发了很多次都没反应 QQ手机密保 发短信怎么没反应啊? 小说,女强男也强,一女多男,越多越好! 求穿越女强(不要女尊)一女多男不虐的小说。越多越好 好友突然在朋友圈发消息,不一会儿又取消了,啥意思 冰箱都清理干净了,为什么还有一种辣味? 冰箱断电半个月后食物腐烂生蛆,冰箱拆开清理过后还是有味道,有些死角没清理到,以后会有细菌吗? 刷完冰箱为什么还有味道?用消消棒除味安全吗? - 信息提示 自考专科,没有毕业证,学信网可以查到毕业信息。没有专科毕业证的情况下,可以申请自考本科毕业证吗? 自考本科毕业时提供的专科毕业证学信网查不到可以吗 2012山西大学新生几号开学 请问山西大学几号开学?我几号来校报名? 预计一下山西省大学的开学时间?