重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容主要讲解“JUC线程如何实现Callable接口”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JUC线程如何实现Callable接口”吧!
创新互联建站专注于策勒企业网站建设,成都响应式网站建设,商城网站建设。策勒网站建设公司,为策勒等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口
Callable 接口类似于 Runnable,两者都是为那些其实例可 能被另一个线程执行的类设计的。但是 Runnable 不会返 回结果,并且无法抛出经过检查的异常。
Callable 需要依赖FutureTask ,FutureTask 也可以用作闭锁
package com.gf.demo;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 一、创建线程的方式三:实现Callable接口。相较于实现 Runnable 接口的方式,方法可以有返回值,并且可以抛出异常。
*
* 二、执行Callable 方式,需要FutureTask 实现类的支持,用于接受运算结果。FutureTask 是Future接口的实现类
*
*/
public class TestCallable {
public static void main(String args[]){
ThreadDemo td = new ThreadDemo();
FutureTask result = new FutureTask<>(td);
new Thread( result ).start();
try {
Integer sum = result.get();
System.out.println(sum);
System.out.println("--------------------------------");
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
}
}}
class ThreadDemo implements Callable {
@Override
public Integer call() throws Exception {
int num = 0;
for (int i = 0 ; i < Integer.MAX_VALUE ; i++) {
num = num + i;
}
return num;
}
}
到此,相信大家对“JUC线程如何实现Callable接口”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!