Java多线程Callable接口实现代码示例
对于多线程,大家并不陌生,对于如何创建线程也是轻车熟路,对于使用newthread和实现runable接口的方式,不再多说。这篇博文我们介绍第三种:实现Callable接口。
Callable接口
接口定义:
@FunctionalInterface publicinterfaceCallable{ Vcall()throwsException; }
从Callable的定义可以看出:
Callable接口类似于Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的,方法可以有返回值,并且可以抛出异常。但是Runnable不行。
Callable需要依赖FutureTask,用于接收运算结果。一个产生结果,一个拿到结果。FutureTask是Future接口的实现类,也可以用作闭锁。
简单实例
计算0到100相加,返回结果。
publicclassTestCallable{
publicstaticvoidmain(String[]args){
CallableThreadDemoctd=newCallableThreadDemo();
//1.执行Callable方式,需要FutureTask实现类的支持,用于接收运算结果
FutureTaskresult=newFutureTask(ctd);
newThread(result).start();
//2.接收线程运算后的结果
try{
Integersum=result.get();//FutureTask可用于闭锁
System.out.println(sum);
}catch(InterruptedException|ExecutionExceptione){
e.printStackTrace();
}
}
}
classCallableThreadDemoimplementsCallable{
@Override
publicIntegercall()throwsException{
intsum=0;
for(inti=0;i<=100;i++){
sum+=i;
}
returnsum;
}
}
Callable接口其实特别简单,在多线程环境中,返回结果。
希望本文所述对大家了解多线程及callable接口有所帮助。感兴趣的朋友可以继续参阅本站:浅谈Java面向接口编程、Java编程接口回调一般用法代码解析等。感谢大家对本站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。