JAVA-基础语法-多线程基础-Callable
【摘要】 JAVA-基础语法-多线程基础-Callable
Callable
Callable 接口 与 Runnable 接口类似,不同的是它们的唯一的 run 方法:
1、Callable 有返回值,Runnable 没有。 Callable 的 run() 方法使用了 泛型类,可以返回任意类型的值。
2、Callable 抛出异常 ,Runnable 没有抛出。
Future
和callable配合使用,持有长时间的线程之后返回的类型
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;
public class TestFutureTask {
public static void main(String[] args) throws InterruptedException,
ExecutionException {
final ExecutorService exec = Executors.newFixedThreadPool(5);
Callable<String> call = new Callable<String>() {
public String call() throws Exception {
Thread.sleep(1000 * 3);//休眠指定的时间,此处表示该操作比较耗时
return "Other less important but longtime things.";
}
};
Future<String> task = exec.submit(call);
//重要的事情
Thread.sleep(1000 * 3);
System.out.println("Let's do important things.");
//不重要的事情
String obj = task.get();
System.out.println(obj);
//关闭线程池
exec.shutdown();
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)